我想检查'ep'是否是一个大写字母。
所以我在ascii表中检查它,我发现它是从0x41到< 0x5A。
我尝试做一个if函数,询问它是否是大写字母。有人可以告诉我如何在大会上检查这个条件?我试着写这个,但它当然不正确:
cmp ep, (>0X40 & <0X5a)
je letter
答案 0 :(得分:3)
您可以使用两项检查来完成此操作。像这样:
cmp ep, 0x40
jl not_capital
cmp ep, 0x54
jg not_letter
# if we arrive here, it's a capital letter
not_letter:
# continue execution flow
或者,您可以减去下限并检查该值是否小于差值,即:
# Note: 0x54 - 0x40 = 0x14
mov ep, <reg> # replace <reg> with the register of your choice
sub 0x40, <reg>
cmp <reg>, 0x15 # if it's 0-0x14, we're ok. 0x15 or more is bad
jb letter # we want unsigned check here (jb not jl)
免责声明:我不知道你的汇编格式(我试图复制它)。但是不要相信我的语法是准确的。