一、实习题目:两个多位十进制数相加。
二、实习目的和要求:
1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立、汇编、链接、调试和运行8088/8086汇编语言程序的过程。
三、实习内容:
将两个多位十进制数相加,要求被加数、加数均以ASCⅡ码形式各自顺序存放
在以DATA1和DATA2为首的五个内存单元中(低位在前),结果送回DATA1处。
四、代码:
DATA SEGMENT
DATA1 DB ' ','6','8','5','9',0DH,0AH,'$'
DATA2 DB ' ', '4','7','6','4',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA DX,DATA1
MOV AH,09H
INT 21H
LEA DX,DATA2
MOV AH,09H
INT 21H
LEA DI,DATA1
LEA SI,DATA2
MOV CX,5
BEGIN:
SUB BYTE PTR [DI],30H
SUB BYTE PTR [SI],30H
INC SI
INC DI
LOOP BEGIN
DEC SI
DEC DI
MOV CX,5
CLC
CALADD:
MOV AL,BYTE PTR [DI]
ADC AL,BYTE PTR [SI]
AAA
MOV BYTE PTR [DI],AL
DEC SI
DEC DI
LOOP CALADD
INC DI
MOV CX,5
DEALRESULT:
ADD BYTE PTR [DI],30H
INC DI
LOOP DEALRESULT
LEA DX,DATA1
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
五、运行结果: