程序,必须输入两位10进制数. 比如 11,45 以空格隔开,必须是这样的形式,否则无法计算并且两数的和不能超过99,
data1 segment
var db 6,0,6 dup(0),'$'
da1 db 2 dup(0),0ah,0dh,'$'
da2 db 2 dup(0),0ah,0dh,'$'
str1 db 'please input two variable!',0ah,0dh,'$'
data1 ends
code1 segment
assume ds:data1,cs:code1
start:
mov ax,data1; 初始化
mov ds,ax
mov dx,offset var; 输入相加的数
mov ah,0ah
int 21h
mov si,2 ;把第一个数移动到大da1
mov cx,2
lea di,da1
loopda1:mov bl,byte ptr var[si]
mov byte ptr [di],bl
inc si
inc di
loopnz loopda1
inc si
mov cx,2
lea di,da2
loopda2:mov bl,byte ptr var[si]
mov byte ptr [di],bl
inc di
inc si
loopnz loopda2
lea di,da1
lea si,da2
mov cx,2
loop1:sub byte ptr [di],30h
sub byte ptr [si],30h
inc di
inc si
loopnz loop1
dec si
dec di
clc
mov cx,2
mov bp,0
loop2:mov al,[di]
adc al,[si]
aaa
mov [di],al
dec di
dec si
loopnz loop2
inc di
mov cx,2
loop3:
add byte ptr[di],30h
inc di
loopnz loop3
mov [var+4],'+'
mov [var+7],'='
mov dx,offset var
add dx,2
mov ah,09h
int 21h
mov dx,offset da1
mov ah,09h
int 21h
mov ah,4ch
int 21h
code1 ends
end star
