21,497
社区成员




comment ~
编写程序,要求从键盘输入两个二位十进制,在程序中将二数相加,并显示其和
本人编了一个程序,错的,谁能帮我看看错在哪里?谢谢!(对不起,我还没得分!)
本人上课不专心啊,什么都没学到!
~
data segment
num1 db 0;3 dup(?)
num2 db 0;3 dup(?)
data ends
code segment 'code'
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,offset num1
;输入一组数
mov ah,01h
int 21h
sub al,'0';;
mov dl,al
mov cl,3
shl al,cl
shl dl,1
add al,dl
mov [si],al
mov ah,01h
int 21h
sub al,'0'
add [si],al
mov ah,01h
int 21h
mov bx,offset num2
;再输入一组数
mov ah,01h
int 21h
sub al,'0'
mov dl,al
mov cl,3
shl al,cl
shl dl,1
add al,dl
mov [bx],al
mov ah,01h
int 21h
sub al,'0'
add [bx],al
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
;把两组数求和
mov al,[bx]
add al,[si];al=sum
xor ah,ah
mov cl,100
div cl
mov bx,ax
test al,al
jz @f
add al,'0'
mov dl,al
mov ah,02h
int 21h
@@:
mov al,bh
xor ah,ah
mov cl,10
div cl
mov bx,ax
add al,'0'
mov dl,al
mov ah,02h
int 21h
add bh,'0'
mov dl,bh
mov ah,02h
int 21h
mov ah,4ch
int 21h
code ends
end start
input example:
12 34<Enter>
or
02 08<Enter>