运行结果为什么会是Divide overflow?哪里出错了,请高手指教。。。。
DATAS SEGMENTSTR DB 'PLEASE INPUT A NO.:$'
DATA1 DB 100
DB ?
DB 100 DUP(?)
DATA2 DB 100
DB ?
DB 100 DUP(?)
DATA3 DB 100 DUP(?)
CRLF DB 0AH,0DH,'$'
DATAS ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATAS
START:MOV AX,DATAS
MOV DS,AX
LEA DX,STR
MOV AH,9
INT 21H
LEA DX,DATA1
MOV AH,10
INT 21H
LEA DX,CRLF
MOV AH,09H
INT 21H
LEA DX,STR
MOV AH,9
INT 21H
LEA DX,DATA2
MOV AH,10
INT 21H
LEA DX,CRLF
MOV AH,09H
INT 21H
LEA BX,DATA1+1
MOV CX,[BX]
MOV DX,CX
LEA SI,DATA1+2
ADD SI,[BX]
LEA DI,DATA2+2
ADD DI,[BX]
LEA BX,DATA3
ADD BX,CX
MOV AH,00H
AGAIN:MOV AL,[SI]
SAHF
ADC AL,[DI]
AAA
LAHF
ADD AL,30H
MOV [BX],AL
DEC BX
DEC SI
DEC DI
LOOP AGAIN
MOV CX,DX
L4:LEA SI,DATA3
MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP L4
MOV AH,4CH
INT 21H
CODE ENDS
END START
以上程序是把两个任意位数的数相加。可运行结果为什么会是Divide overflow?哪里出错了,请高手指教。。。。