Skip to content

MengmSun/80x86AssemblyExperiments

Repository files navigation

80x86AssemblyExperiments

80x86AssemblyExperiments, learn Intel Microprocessor,USTC

实验环境为 MacOs+Dosbox,masm5.直接将此整个文件夹全部下载,然后安装Dosbox即可编译链接运行其中文件。The experimental environment is MacOS + dosbox, masm5. Download the entire folder directly, and then install dosbox to compile or run the files.

Ex1:Input&Output

实验目的: 掌握汇编程序的基本编写方式 学习汇编语言的基础I/O操作,为后续实验做准备

实验内容: 创建一个名为Input1.txt的文件 使用键盘输入一个包含大写字母、小写字母和数字的字符串,并将这个字符串写入文件中 读取这个文件,将小写字母转换成大写形式,大写字母和数字保持不变,最后整个字符串输出到屏幕,并写入Output1.txt文件

Ex2:Branch

实验目的: 掌握汇编语言中比较和跳转命令 掌握汇编语言中循环命令的使用

实验内容: 键盘输入一个数字N(0<N<10) 把𝟏~𝑵^2的自然数按行顺序存入二维数组 在屏幕上打印出该数组的左下半三角

Ex3:Sort

实验目的: 综合运用汇编中的I/O、比较、跳转、循环等指令 掌握用汇编语言实现数字排序程序的方法

实验内容: 从名为“Input3.txt”的文本文件中读取一组数字 将这些数字从小到大进行排序 将这些数字按照排序后的次序打印在屏幕上 数字范围[-1024,1023],排序数字不超过100个 排序算法不限(我用的冒泡)

Ex4:Subprogram

实验目的: 掌握汇编语言中子程序的编写与调用方法 理解汇编语言中的递归调用

实验内容: 编写一个程序,使用子程序调用的方式计算n! n的值通过键盘输入 n的范围(0,20) 程序设计中请注意运算结果的范围

Ex5:Integer addition and subtraction calculator

实验目的: 掌握汇编语言的整数加减运算 掌握汇编语言的堆栈操作

实验内容: 编程计算任一整数加减运算表达式 表达式从键盘输入,可带括号 表达式的长度不超过1024个字节 表达式示例:𝟏𝟓−(𝟒−𝟐)

Ex6:Float

实验目的: 理解浮点数的存储和运算原理 掌握x87算术协处理器的运算指令 掌握汇编语言中浮点数与字符串的转换方法

实验内容: 从键盘输入x和a1、a2、a3 "计算" 𝒂_𝟏 √𝒙+𝒂_𝟐 〖𝑙𝑜𝑔〗_𝟐⁡𝒙+𝒂_𝟑 𝒔𝒊𝒏(𝒙)并将结果打印到屏幕 当x小于0时,输出信息“Error: x<0!”

*注:因为EMU8086不支持FPU指令,所以此实验无法在EMU8086中完成。我使用MASM32进行32位浮点数运算,直接使用与浮点运算有关的库(待上传)

About

80x86AssemblyExperiments, learn Intel Microprocessor,USTC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published