我找不到可以编辑的代码,这样我就可以添加两位数字而不是1位数字,这里是代码:
.model small
.stack 100h
.data
first db 13,10, 'Enter 1st Number: $'
second db 13,10, 'Enter 2nd Number: $'
result db 13,10, 'Result: $'
invalid db 13,10, 'Invalid Number!!! $'
.code
start:
mov ax,03
int 10h
mov ax,@data
mov ds,ax
mn:
mov dx, offset first
mov ah,9
int 21h
mov ah,1
int 21h
mov cl,al
cmp al,30h
jl nvalid
cmp al,39h
jg nvalid
jmp proceed
nvalid:
mov dx,offset invalid
mov ah,9
int 21h
jmp mn
proceed:
sub cl,30h
mov dx,offset second
mov ah,9
int 21h
mov ah,1
int 21h
cmp al,30h
jl nvalid
cmp al,39h
jg nvalid
sub al,30h
xor ah,ah
add al,cl
aaa
mov cx,ax
add cx,3030h
mov dx, offset result
mov ah,9
int 21h
mov ah,2
mov dl,ch
int 21h
mov dl,cl
int 21h
exit:
mov ah,4ch
int 21h
end start
答案 0 :(得分:2)
在查看您的代码之后,您真正的问题不是“如何将两位数字加在一起”(显而易见,使用add
指令)。
您的真实的问题是“如何使用int 21h, ah=09h
显示两位数字?”
答案是:您需要单独显示每个数字,方法是将原始数字除以增加10的幂,直到您得到零。为每个结果添加30小时('0'
)并显示该字符。
相关: