汇编语言实验讲义实验2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 算术运算类操作实验 (基础与设计)
一、实验要求和目的
1、了解汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;
2、掌握各类运算类指令对各状态标志位的影响及测试方法;
3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;
4、熟悉无符号数和有符号数乘法和除法指令的使用;
5、掌握符号位扩展指令的使用。
6、掌握BCD码调整指令的使用方法
二、软硬件环境
1、硬件环境:计算机系统 windows;
2、软件环境:装有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,试编程求这两组数的和差积商,并考
虑计算结果对标志寄存器中状态标志位的影响:
计算状态标志
表达式结果 CF AF ZF OF SF PF 087H +034H
087H -034H
087H *034H
087H/034H
0C2H+5FH
0C2H-5FH
0C2H*5FH
0C2H/5FH
总结各运算对状态标志位的影响,及其意义。
2、在数据段定义了两个多精度的有符号16进制数,FIRST和SECOND ,1)求两数的和
与差,并将结果存放在THIRD为首地址的缓冲区中;2)如果把两组数据当作十进制数据
来处理,再次求两数的和与差,并将结果存放在FORTH为首地址的缓冲区中。
试编程实现
上述运算。
FIRST DW 45 H,82H,96 H,57H
SECOND DW 12 H,46H,83 H,45H
16进制结果 10进制结果FIRST +SECOND
FIRST -SECOND
3、编程计算((Z +X*Y -328) -V)/ Y,其中X、Y、Z、V均为16位带符号数,假设初始数
据分别装入X、Y、Z、V单元,要求上式计算结果的商存入AX,余数存入DX寄存器。
同
学自行给出初始值加以验证程序。
五、实验要求
(1)画出各程序流程图;
(2)列出程序清单,加上适量注释;
(3)回答思考问题;
(4)记录实验结果。
(5) 完成实验报告(实验材料上的内容简写,自己的工作要详尽)。