一. 实验目的
- 掌握子程序的设计方
- 灵活掌握数据传送和算术运算指令的用法。
- 掌握加法计算程序的设计思路和设计方法。
二. 实验内容
1.内容:
1)将两个多精度十进制数相加。
2)要求被加数和加数均以组合BCD码形式各自存放在以DATA1和DATA2为首的连续的5个内存单元中,结果送回被加数单元。
2.要求:
1)编写一个程序,他以二进制形式显示EAX中32位数据,并设计一个主程序验证。
2)利用十六进制字节显示子程序DISPHB设计一个从低地址到高地址逐个字节显示某个主存区域内容的子程序DISPMEM。其入口参数:EAX=主存偏移地址,ECX=字节个数(主存区域的长度)。
3)综合利用所学知识,设计并完成子程序,编写一个主程序进行验证。
4)对预习报告中的源代码进行上机实现,记录实验结果。
三. 实验过程和程序
程序代码:
DATA SEGMENT
DATA1 DB 03H 09H 01H 07H 04H
DATA2 DB 06H 05H 00H 08H 02H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA2
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET DATA1
MOV DI,OFFSET DATA2
MOV CX,05
CLC
AD: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL
AAA
MOV [SI],AL
INC SI
INC DI
LOOP AD
HLT
CODE ENDS
END START
结果:
1.输入五次t后得到:初始化ds段后,做好做加法前准备
2.做完第一次加法后得到结果:09h si中
3.全部数加完后得到所有结果存入ds段中的si偏移地址中