急----十进制的加法计算--为什么和大于等于10就出错了?
我的这段代码想实现任意两个十进制的数相加!
可是现在的问题是:结果如果大于或等于10的话,就会出现错误!
希望大家给改改,谢谢了!!!
能给注释的话最好,因为这段代码我看的也不是全懂,东找西凑的
程序代码如下:
DATA SEGMENT
X DB ?
Y DB ?
S DB ?
mess1 db "Input x=(0 quit)","$"
mess3 db 'Input y=','$'
mess2 db 'x+y=','$'
DATA ENDS
stack segment para stack 'stack'
dw 100 dup(?)
stack ends
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:stack
START: MOV AX,DATA
MOV DS,AX
l1: lea dx,mess1
mov ah,9
int 21h
MOV AH,1
INT 21H
cmp al,30h
je l2
MOV X,AL
call cr_lf
lea dx,mess3
mov ah,9
int 21h
MOV AH,1
INT 21H
MOV Y,AL
MOV AL,X
AND AL,0FH
MOV BL,Y
AND BL,0FH
ADD AL,BL
MOV S,AL
call cr_lf
push ax
mov dx,offset mess2
mov ah,9
int 21h
pop ax
OR AL,30H
MOV AH,2
MOV DL,AL
INT 21H
call cr_lf
jmp l1
l2: MOV AH,4CH
INT 21H
cr_lf proc
push ax
push dx
mov ah,2
mov dl,0ah
int 21h
mov ah,2
mov dl,0dh
int 21h
pop dx
pop ax
ret
cr_lf endp
CODE ENDS
END START