gpt4 book ai didi

assembly - 比较汇编中的字符,nasm

转载 作者:行者123 更新时间:2023-12-05 04:17:29 28 4
gpt4 key购买 nike

我正在尝试从用户那里获取输入,然后我想根据用户输入的内容输出一些文本。

我的问题是出于某种原因,它总是认为它是 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

最佳答案

JAE 表示如果大于或等于则跳转,也就是说当您与'A'进行比较时,将对编码大于或等于'A'的任何字符进行跳转。

您想要的是 JE,这意味着仅当值完全相同时才跳转。

关于assembly - 比较汇编中的字符,nasm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22987212/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com