2022年汇编语言程序设计方案实验报告四 .pdf
汇编语言程序设计实验报告四(算术运算程序实验)一、实验目的1、 熟悉算术运算指令的功能与应用。2、 学习编写加法和乘法运算程序。二、实验内容1、 二进制运算计算 23579+7684 和 0A5H+34H (1)原始数据分别存于A、B、C、D 开始听内存单元中,运算结果分别存E、G 开始的内存单元中。(低位数在低字节中)(2)前两个数据在程序中用十进制表示,后两个数据在程序中用十六进制表示。(3)十进制数定义成字变量,用16 位加法。十六进制数定义成字节变量,用8 位加法。2、 多字节加法在内存中以FIRST 和 SECOND 开始的单元中分别存放有两个10 位压缩型十进制数(BCD码),低位在前。求这两个数的压缩十进制数和,并存到THIRD 开始的单元中。(1)压缩十进制数亦称组合十进制数,一个字节存放二位BCD 码。(2)两个加数可直接直接在程序中设置。3、 二进制乖法(1)在内存DATA1 和 DATA2 单元中分别存放着两个8 位无符号二进制数A 和B 。求 AXB ,结果存于DATA3 开始的内存单元中。(2)在 FIRST 和 SECOND 开始的内存单元中,分别存放着两个16 位带符号二进制数 D 和 E,求 DXE ,结果存于THIRD 开始的内存单元中。三、实验准备1、 仔细阅读本实验教材。2、认真预习加法、乖法和十进制调整指令。精心设计运算使用的实验数据。(注意:应准备多组不同数据以备实验。)3、 根据实验内容,分别画出各个程序的流程图,并在实验前编好各个源程序。四、实验步骤1、 二进制数运算(1)题目的具体要求,将原始数据及存放结果的内存单元分别定义成字变量或字节变量。(2)辑程序,把编写好的源程序建立为汇编语言源程序文件并存盘。(3)对源程序文件进行汇编、连接,且修改至无错误,然后运行程序。(4)利用调试程序观察运行结果。如果有错,分析并找出错误原因,改写程序并重新调试。2、多字节加法程序(1)在 FIRST 和 SECOND 开始的内存单元中建立各为10 位的压缩型BCD 码的数据区,数据要选择得当。要考滤位间有进位和最高位也要有进位等不同情况。数据从低字节开始存放。(2)把编写好的源程序,用编辑程序建立为汇编语言程序源文件并存盘。(3)注意多字节运算加法指令的选择以及相应状态(如CF 位)位的设置。进行BCDD 码运算时,要选择合适的十进制调节调整指令;运算结果的最高位进位情况要处理。(4)汇编、连接源程序,且修改至无错误,然后运行程序。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 4 页3、(1)选择相应的数据存放于内存单元中。为了考查多种情况,数据选择要合理。对于8 位无符号数应使其在职255 的范围内,并使得积大于8 位无符号数的范围;对于16位有符号数的选择应兼顾到正、负数的情况。注意乖法指令的选择要考滤有符号乖法和无符号乖法的不同情况;有符号乖数如果为负数,则数据在内存中以二进制补码形式存放。三、实验报告要求四、程序流程图开始开始 AX A CX 6 AX AX+B SI 0 E AX 清 CF AL C AL ( SECOND+SI ) AL AL+D AL AL+(FIRST+SI ) C AL (THIRD+SI ) AL 结束,返回系统 SI SI+1 CX CX-1 二进制运算流程图 CX=0 ? Y 结束,返回系统书馆多字节加法流程图五、源程序代码清单1、 二进制运算程序清单DATA SEGMENT A DW 23579 B DW 7684 C DB 0A5H D DB 34H E DW ? G DW ? DATA ENDS CODE SEGMENT 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 4 页 ASSUME CS:CODE,DS:DA TA START: MOV AX,DATA MOV DS,AX MOV AX,A ADD AX,B MOV E,AX MOV AL,C ADD AL,D AND AX,OFH MOV G,AL MOV AH,ECH INT 21H CODE ENDS END START 2、多字节加法程序清单DATA SEGMENT FIRST DB 46H,58H,32H,71H,66H,00H SECOND DB 75H,21H,49H,23H,82H,00H THIRD DB 6 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:BCD-ADD,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,6 MOV SI,0 CLC LLO: MOV AL,SECONDSI ADC AL,FIRSTSI DAA MOV THIRDSI,AL INC SI LOOP LLO MOV AH,4CH INT 21H CODE ENDS END START 2、 二进制乖法程序清单DATA SEGMENT DATD1 DB 245 DATA2 DB 43 DATA3 DW ? FIRST DW 6405H SECOND DW 0FFFEH 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 4 页THIRD DW ? THIRD1 DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,DA TA1 NUL DATA2 MOV DATA3,AX MOV AX,FIRST IMUL SECOND MOV THIRD,AX MOV THIRD1,DX MOV AH,4CH INT 21H CODE ENDS END START 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 4 页