cmp无法正常工作 - 英特尔x86(IA32)程序集

时间:2017-04-29 20:47:46

标签: assembly x86 intel att

我试图在汇编中编写一个简单的代码,并且在使用cmp比较两个值时遇到了麻烦。如果我的值不在65到90之间,我想跳到某一点。

 cmp $65, (%ebx)
 jl looping
 cmp $90, (%ebx)
 jg check_minusculas

运行gdb我的%ebx值是0x80490f9并使用:

x /1db 0x80490f9

我得到(%ebx)是77。 但是,当显然77 <90时,程序跳转到check_minusculas 我在这里缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

你的问题是你忘了使用大小说明符,当你显然想要使用byte时,它默认为很长。解决方案:使用cmpb