一、实验项目要求
基本要求
- 熟悉emu8086仿真系统;
- 实现控制台输入输出;
3.设计并单步调试实现一位十进制数的加法运算(屏幕效果为3+2=5,红色为输入其他为自动输出);
扩展要求
- 实现两位十进制和的输出;
- 实现一位十进制四则运算;
- 实现多位数运算。
二、理论分析或算法分析
基本要求
- 熟悉emu8086仿真系统:
(1)双击打开
(2)新建一个
(3)建一个empy workspace
(4)点击模拟进行运行
(5)可以单步运行,可以直接运行
(6)这里有编制、附加等
(7)寄存器
(8)模拟器屏幕
2.实现控制台输入输出
在文件里面输入代码,直接运行,可以实现控制台的输入输出;
3.设计并单步调试实现一位十进制数的加法运算(屏幕效果为3+2=5,红色为输入其他为自动输出);
新建一个文件,一般来说,从键盘输入的数字都是以ASCII码的形式存放在内存中的。对于十六进制数来说,0~9的ASCII码值分别为30H~39H,对着十个数的转换,减去30H就得到对应的二进制值,再用二进制值进行加减乘除的运算。
然后运行,直接run,从键盘上输入3和2,结果出现5。
扩展要求
在实现一位二进制加法的基础上,流程基本一致,但是两位数的加法运算,需要用DAA来进行加法的十进制调整,而一位数的加法运算用的是AAA来进行ASCII码调整。在实现一位数的加法运算和一位数的减法、乘法、除法运算的主要区别就是控制台输出的运算符不同,算术运算指令 也不同,而且也要考虑这些指令在运算的过程中是否会产生借位。
三、实验方法
基本要求
一位数的加法
扩展要求
两位数的加法
一位数的除法
四、实验结果分析
基本要求的结果
一位数的加法
扩展要求
两位数的加法
扩展要求
一位的除法
总结
通过实验,验证了基本要求,实现了一位数加法运算的功能,同时实现了两位数加法运算的功能,还有一位数的除法。
思考题:
(1)输入输出数据和计算用数据的区别:
从键盘上输入以及输出的数据要在通过转化为计算机所识别的二进制的数字,和计算所用的数据之间相差30H。
(2)单字符输入输出和串输入输出的不同之处:
单字符的输入使用1号功能键,输出通过2号功能调用,且待显示字符送给DL寄存器;串输入使用0A功能,输出通过9号功能调用,DS:DX指向待显示字符串,且字符串必须以“$”结束。