实验三 算术运算类指令的使用

实验三 算术运算类指令的使用

ID:11473563

大小:37.50 KB

页数:3页

时间:2018-07-12

实验三 算术运算类指令的使用_第1页
实验三 算术运算类指令的使用_第2页
实验三 算术运算类指令的使用_第3页
资源描述:

《实验三 算术运算类指令的使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。