资源描述:
《汇编语言程序设计实验报告四(算术运算程序实验)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、汇编语言程序设计实验报告四(算术运算程序实验)一、实验目的1、熟悉算术运算指令的功能与应用。2、学习编写加法和乘法运算程序。二、实验内容1、二进制运算计算23579+7684和0A5H+34H(1)原始数据分别存于A、B、C、D开始听内存单元中,运算结果分别存E、G开始的内存单元中。(低位数在低字节中)(2)前两个数据在程序中用十进制表示,后两个数据在程序中用十六进制表示。(3)十进制数定义成字变量,用16位加法。十六进制数定义成字节变量,用8位加法。2、多字节加法在内存中以FIRST和SECOND开始的单元中分别存放有两个10位压缩型十进制数(BCD码),低位在前。求这两个数
2、的压缩十进制数和,并存到THIRD开始的单元中。(1)压缩十进制数亦称组合十进制数,一个字节存放二位BCD码。(2)两个加数可直接直接在程序中设置。3、二进制乖法(1)在内存DATA1和DATA2单元中分别存放着两个8位无符号二进制数A和B。求AXB,结果存于DATA3开始的内存单元中。(2)在FIRST和SECOND开始的内存单元中,分别存放着两个16位带符号二进制数D和E,求DXE,结果存于THIRD开始的内存单元中。三、实验准备1、仔细阅读本实验教材。2、认真预习加法、乖法和十进制调整指令。精心设计运算使用的实验数据。(注意:应准备多组不同数据以备实验。)3、根据实验内容
3、,分别画出各个程序的流程图,并在实验前编好各个源程序。四、实验步骤1、二进制数运算(1)题目的具体要求,将原始数据及存放结果的内存单元分别定义成字变量或字节变量。(2)辑程序,把编写好的源程序建立为汇编语言源程序文件并存盘。(3)对源程序文件进行汇编、连接,且修改至无错误,然后运行程序。(4)利用调试程序观察运行结果。如果有错,分析并找出错误原因,改写程序并重新调试。2、多字节加法程序(1)在FIRST和SECOND开始的内存单元中建立各为10位的压缩型BCD码的数据区,数据要选择得当。要考滤位间有进位和最高位也要有进位等不同情况。数据从低字节开始存放。(2)把编写好的源程序,
4、用编辑程序建立为汇编语言程序源文件并存盘。(3)注意多字节运算加法指令的选择以及相应状态(如CF位)位的设置。进行BCDD码运算时,要选择合适的十进制调节调整指令;运算结果的最高位进位情况要处理。(4)汇编、连接源程序,且修改至无错误,然后运行程序。3、(1)选择相应的数据存放于内存单元中。为了考查多种情况,数据选择要合理。对于8位无符号数应使其在职~255的范围内,并使得积大于8位无符号数的范围;对于16位有符号数的选择应兼顾到正、负数的情况。注意乖法指令的选择要考滤有符号乖法和无符号乖法的不同情况;有符号乖数如果为负数,则数据在内存中以二进制补码形式存放。三、实验报告要求四
5、、程序流程图开始开始AXACX6AXAX+BSI0EAX清CFALCAL(SECOND+[SI])ALAL+DALAL+(FIRST+[SI])CAL(THIRD+[SI])AL结束,返回系统SISI+1CXCX-1二进制运算流程图CX=0?Y结束,返回系统书馆多字节加法流程图五、源程序代码清单1、二进制运算程序清单DATASEGMENTADW23579BDW7684CDB0A5HDDB34HEDW?GDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,AADDAX,BMOVE,AXM
6、OVAL,CADDAL,DANDAX,OFHMOVG,ALMOVAH,ECHINT21HCODEENDSENDSTART2、多字节加法程序清单DATASEGMENTFIRSTDB46H,58H,32H,71H,66H,00HSECONDDB75H,21H,49H,23H,82H,00HTHIRDDB6DUP(?)DATAENDSCODESEGMENTASSUMECS:BCD-ADD,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,6MOVSI,0CLCLLO:MOVAL,SECOND[SI]ADCAL,FIRST[SI]DAAMOVTHIRD[SI],
7、ALINCSILOOPLLOMOVAH,4CHINT21HCODEENDSENDSTART1、二进制乖法程序清单DATASEGMENTDATD1DB245DATA2DB43DATA3DW?FIRSTDW6405HSECONDDW0FFFEHTHIRDDW?THIRD1DW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,DATA1NULDATA2MOVDATA3,AXMOVAX,FIRSTIMULSE