资源描述:
《实验三 算术运算类指令的使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三算术运算类指令的使用一.实验目的:进一步熟悉变量定义伪指令的使用,复习操作数的寻址方式,掌握算术运算类指令的用法。二.实验内容:调试实验指导中给出的程序,查看数据区的内容,回答相关问题,并尝试自己编写简单的源程序。三.操作步骤1.调用字处理程序建立源程序文件如图4-1所示。DATASEGMENTARRY1DB12H,34HARRY2DB56H,78HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,ARRY2MOVAL,ARRY1ADDAL,[BX]DAAMOV
2、DL,ALINCBXMOVAL,ARRY1+1ADCAL,[BX]DAAMOVDH,ALMOVAH,4CH;调用21H号中断的4CH号功能,返回DOSINT21HCODEENDSENDSTART图4-12.在DOS环境下,用汇编程序MASM对源文件汇编产生目标文件OBJ,命令格式如下:如汇编程序指示出错则需要重新调用编辑程序修改错误,直至汇编通过为止。3.用连接程序link产生执行文件exe4.调试程序。单步运行带横线的指令,了解这些指令的功能,回答问题:这个程序的功能是什么?答:这个程序的功能是将ARRY1和ARRY2中的前两个数据相加结果转换为压缩BC
3、D码的形式存入DL中,将他们的后两个数据相加结果转换为压缩BCD码的形式存入DH中。5.注意查看两次DAA指令执行前后AL寄存器内容有没有什么变化,将数据段改为DATASEGMENTARRY1DB66H,77HARRY2DB88H,99HDATAENDS再重新编译、链接该程序,用DEBUG重新调试,再次查看DAA指令执行前后AL寄存器内容的变化,了解DAA指令在什么情况下会改变AL寄存器的值。答:更改程序后AL寄存器中的内容在运行DAA后,高4位和低4位均加6调整为压缩BCD码的格式(从EEH→54H)。DAA指令的调整方法:考查结果(在AL中)的低4位和
4、高4位的值以及半进位标志AF和进位标志CF的状态,如果结果的低4位的值大于9或有AF=1时,则将结果的低4位加6调整,并将AF标志位置1;如果结果的高4位的值大于9或有CF=1时,则将结果的高4位加6调整,并将CF标志位置1;如果结果的高4位和低4位的值均大于9或既有AF=1,又有CF=1时,则将结果的高低4位均加6调整,并将AF,CF标志位均置1,从而的到正确的压缩BCD码结果。6.编写程序实现如下表达式的运算:(5X+Y)/Z商放在R1中,余数放在R2中。假设X、Y、Z、R1、R2均为16位带符号数。提示:在执行加法运算时要注意数据类型的匹配,用CWD
5、指令对Y进行数据类型的扩展,但在此之前要将乘法运算的结果保存到其他寄存器中。数据段定义如下DATASEGMENTXDW987YDW-34ZDW-23R1DW?R2DW?DATAENDS程序汇编通过后,用DEBUG调试程序,查看运行结果是否正确。(数据大小可自己定)DATASEGMENTXDW12YDW8ZDW2R1DW?R2DW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,XMOVBX,5IMULBXMOVCX,DXMOVBX,AXMOVAX,YCWDADDAX
6、,BXADCDX,CXMOVBX,ZIDIVBXMOVR1,AXMOVR2,DXMOVAH,4CHINT21HCODEENDSENDSTART