内容发布更新时间 : 2025/1/5 17:49:29星期一 下面是文章的全部内容请认真阅读。
实验二 两个多位十进制数相加 一、要求:
将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII
码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低
位在前)。结果显示在屏幕上。 二、目的:
1、学习数据传送和算术运算指令的用法。
2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过 程。
程序如下:
DATA SEGMENT
S1 DB '5','4','3','6','0' S2 DB '6','5','3','6','0' S3 DB '6345+6356=$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MOV AX,DATA
START:
MOV DS,AX MOV ES,AX MOV DX,OFFSET S3 MOV AH,9
INT 21H
CLC ;清进位 CLD
MOV SI,OFFSET S1 MOV DI,OFFSET S2 MOV CX,05H
L1: LODSB ;本次被加数[SI]--〉AL
ADC AL,[DI] ;本次被加数(AL)+本次加数[DI]+上次进位, 结果--->AL
AAA ;非组合BCD码调整,结果-->AL STOSB ;本次相加结果(AL)-->[DI], DI+1-->DI LOOP L1 MOV AH,02H MOV CX,05H
L2: MOV DL,[DI-1]
OR DL,30H ;非组合BCD码-->ASICII码 INT 21H DEC DI LOOP L2
MOV AH,4CH INT 21H
CODE ENDS END START
调试结果