我正在尝试从用户那里获得输入,然后我想输出一些文本,具体取决于用户输入的内容。
我的问题是出于某种原因,它总是认为它是A,我不知道为什么。 你可以在下面找到我的代码:
bits 16
org 0x100
jmp main
message: db 'Please enter a A or B:',0ah,0dh,'$'
character: db 1
outp_a: db 'IT IS A',0ah,0dh,'$'
outp_b: db 'IT IS B',0ah,0dh,'$'
finish db 'good bye',0ah,0dh,'$'
clearscreen:
mov dx, 10
mov bh, 0
mov ah, 2
int 10h
mov cx, 2000
mov bh, 0
mov bl, 01Eh
mov al, 20h
mov ah, 09h
int 10h
ret
disply:
mov ah,09h
int 21h
ret
get_input: mov ah,01h
int 21h
ret
input_a: mov dx,outp_a
call disply
ret
input_b: mov dx,outp_b
call disply
ret
compare: mov cl,'A'
cmp [character],cl
JAE input_a
mov cl,'B'
cmp [character],cl
JAE input_b
ret
main: call clearscreen
mov dx,message
call disply
call get_input
mov [character],ax
call compare
mov dx,finish
call disply
int 20h
答案 0 :(得分:2)
JAE
表示如果大于或等于跳跃,也就是说当您与'A'比较时,将对任何编码大于或等于'A'的字符进行跳转。
您想要的是JE
,这意味着只有在值完全相同时才会跳转。