我不能在屏幕上写数字! (汇编代码)

时间:2014-05-07 19:16:45

标签: assembly x86-16

我有一个程序可以添加两个数字,但每当我运行它并尝试输入一个数字时它就不起作用。屏幕上只显示字符!

以下是代码:

.model small

.data
message db "Enter a number you want to add $"
message2 db " Enter another number $"
message3 db " + $"
Message4 db " = $"

.code
main proc

mov ax, seg message
mov ds, ax
mov dx, offset message
mov ah, 9h
int 21h

mov ah, 1h
int 21h
mov bl, al

mov ax, seg message2
mov ds, ax
mov dx, offset message2
mov ah, 9h
int 21h

mov ah, 1h
int 21h
mov cl, al

mov dl, bl

mov ah, 2h
int 21h

mov ax, seg message3
mov ds, ax
mov dx, offset message3
mov ah, 9h
int 21h

mov dl, cl

mov ah, 2h
int 21h

mov ax, seg message4
mov ds, ax
mov dx, offset message4
mov ah, 9h
int 21h

sub bl, 30h
sub cl, 30h
add bl, cl

mov dl, bl
add dl, 30h

mov ah, 2h
int 21h

endp

end main

感谢。

1 个答案:

答案 0 :(得分:-1)

如果每个输入的字符确实是一个数字,那么所呈现的程序将正常工作(足够)! 即便如此,总和不应超过9才能显示正确的结果 事实上,OP shymaa表示,当他/她推动'1'他/她获得'&'时可能表明他/她正在使用比利时或法国布局的键盘。这两个字符都出现在同一个键帽上。 所以也许按顺序使用SHIFT或CAPSLOCK。或者使用数字键盘(如果有的话)!