2.实现多字节加法,将 A(A776139FH)+B(C0159471H)求和,结果存入 C 连续
的单元中。
DATA SEGMENT
A DB 0A7H,76H,13H,9FH
B DB 0C0H,15H,94H,71H
C DB 5 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DI,A+3 ;获取 A 内存单元末地址
LEA SI,B+3 ;获取 B 内存单元末地址
LEA BX,C+4 ;获取 C 内存单元末地址
AND AX,AX
MOV CX,4
AGAIN:MOV AL,[DI]
ADC AL,[SI]
MOV [BX],AL
DEC DI
DEC SI
DEC BX
LOOP AGAIN
MOV AL,0 ;看结果是否有进位
RCL AL,1
MOV [BX],AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
3.设在 A、B 和 C 单元中分别存放着三个数。若三个数都不是 0,则求出三数之
和存放在 D 单元中;若其中一个数为 0,则把其它两单元也请 0。请编写源程序。
DATA SEGMENT
A DW 2
B DW 5
C DW 6
D DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
CMP A,0
JE NEXT
CMP B,0
JE NEXT
CMP C,0
JE NEXT
MOV AX,A
ADD AX,B
ADD AX,C
MOV D,AX
JMP EXIT
NEXT:MOV A,0
MOV B,0
MOV C,0
EXIT:MOV AH,4CH
INT 21H
CODE ENDS
END START