汇编实验二算术运算类操作实验基础与设计Word文档格式.docx
- 文档编号:21879129
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:13
- 大小:347.82KB
汇编实验二算术运算类操作实验基础与设计Word文档格式.docx
《汇编实验二算术运算类操作实验基础与设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编实验二算术运算类操作实验基础与设计Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
装有MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识
本实验主要进行算术运算程序设计和调试,涉及到的知识点包括:
1.加减法处理指令
主要有加法指令ADD,带进位加法ADC,减法指令SUB,带进位减法指令SBB。
2.乘除法指令和符号位扩展指令
主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令IDIV,以及符号位从字节扩展到字的指令CBW和从字扩展到双字的指令CWD。
3.BCD码的调整指令
主要有非压缩的BCD码加法调整指令DAA,压缩的BCD码减法调整指令DAS,非压缩的BCD码加法调整指令AAA,非压缩的BCD码减法调整指令AAS,乘法的非压缩BCD码调整指令AAM,除法的非压缩BCD码调整指令AAD。
8088/8086指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表1所示的数据类型进行数据运算。
数制
二进制
BCD码
带符号
无符号
组合
非组合
运算符
+、-、×
、÷
+、-
操作数
字节、字、多精度
字节(二位数字)
字节(一位数字)
表1数据类型数据运算表
各指令的格式、功能及其对标志位的影响等细节知识,请同学们查阅相关书籍,这里不
再赘述。
四、实验内容与步骤
1、对于两组无符号数,087H和034H,0C2H和5FH,试编程求这两组数的和差积商,并考
虑计算结果对标志寄存器中状态标志位的影响
2、在数据段定义了两个多精度的有符号16进制数,FIRST和SECOND,1)求两数的和
与差,并将结果存放在THIRD为首地址的缓冲区中;
2)如果把两组数据当作十进制数据
来处理,再次求两数的和与差,并将结果存放在FORTH为首地址的缓冲区中。
试编程实现
上述运算。
3、编程计算((Z+X*Y-328)-V)/Y,其中X、Y、Z、V均为16位带符号数,假设初始数
据分别装入X、Y、Z、V单元,要求上式计算结果的商存入AX,余数存入DX寄存器。
同
学自行给出初始值加以验证程序。
五、程序设计:
实验1:
流程图如下:
开始
输入数据
进行运算
输出结果
结束
实验2:
以16进制加法为例,流程图如下:
输入FIRST
和SECOND
SI=3,CX=4
Y
CX=0?
N
输出
[THIRD+1][SI]=FIRST[SI]+SECOND[SI]
THIRD
CX-1,SI-1
结束
其他程序流程图类似。
六、实验过程及结果:
1.根据要求,设计程序如下:
2.编译代码,生成OBJ文件,再生成EXE文件,可成功运行。
3.进行程序调试可得运算结果如下:
087H+034H的结果:
087H-034H的结果:
087H×
034H的结果:
087H/034H的结果:
0C2H+5FH的结果:
0C2H-5FH的结果:
0C2H×
5FH的结果:
0C2H÷
4.总结两组数的和差积商及标志状态位情况如下表:
计算
状态标志
表达式
结果
CF
AF
ZF
OF
SF
PF
087H+034H
0BBH
NC
NA
NZ
NV
PL
PE
087H-034H
53H
087H*034H
1B6CH
087H/034H
商2H
余1FH
ZR
0C2H+5FH
121H
AC
0C2H-5FH
63H
0C2H*5FH
47FE
PO
0C2H/5FH
余4H
状态标志位
加法
减法
乘法
除法
1
最高有效位向高位无进位
最高有效位向高位有进位
二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)
二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况
CFOF=00乘积的高一半为0(字节操作的(AH)或字操作的(DX))
CFOF=11乘积的高一半不为0
不
确
定
无影响
结果不为零
结果为零
两个不同符号数相加,或同符号数相加,结果符号与其相同。
两个同符号数相加(正数+正数或负数+负数),结果符号与其相反。
同符号数相减时,或不同符号数相减,其结果符号与减数不同。
两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。
结果不为负
结果为负
1.根据要求,编译程序如下:
FIRST+SECOND的16进制:
FIRST-SECOND的16进制:
FIRST+SECOND的10进制:
FIRST-SECOND的10进制:
FIRST+SECOND的16进制结果:
FIRST-SECOND的16进制结果:
FIRST+SECOND的10进制结果:
FIRST-SECOND的10进制结果:
4.最终结果如下:
十六进制结果
十进制结果
FIRST+SECOND
57H,C8H,19H,9CH
58,29,80,03
FIRST-SECOND
33H,3CH,13H,12H
33,36,13,12
实验3:
1.依据题意编写代码如下:
2.编译代码,生成OBJ文件,再生成EXE文件,可成功运行。
3.进行程序调试可得运算结果如下:
即商为82H,余数为1FH
七、实验感想:
经过两次实验,渐渐熟悉了编程环境,对汇编语言中的二进制、十六进制、十进制、BCD码的表示形式有了一定了解,也对从汇编课上学习到的有关BCD码调整指令方面理论知识有了更深刻的认识,经过自己动手编程,熟悉了二进制多字节加减法基本指令的使用方法以及无符号数和有符号数乘法和除法指令的使用,通过分析和思考,掌握了各类运算类指令对个状态标志位的影响和测试方法。
继续阅读
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 算术 运算 操作 基础 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)