首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmp和ja问题

cmp和ja问题
EN

Stack Overflow用户
提问于 2011-04-04 22:37:11
回答 2查看 16.3K关注 0票数 3

我在理解这一点时遇到了问题。它使用英特尔语法

代码语言:javascript
复制
cmp eax, 0x19
ja greater

eax包含值-40。http://en.wikibooks.org/wiki/X86_Assembly/Control_Flow告诉我ja是来自上一次cmp的无符号比较。

据我所知,如果arg1 (0x19)高于arg2 (0xffffffd8),则应该跳转

0x19在我看来比0xffffffd8小。正在执行跳转。任何帮助理解我有缺陷的逻辑的人都非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-04 22:43:43

这有点难以回答,因为不同的汇编器颠倒了操作数的顺序。从外观上看,您似乎在使用英特尔语法汇编,在这种情况下,您拥有的大致相当于if (unsigned)eax > 0x19 goto greater。在这种情况下,跳跃是合理的。

票数 8
EN

Stack Overflow用户

发布于 2012-02-15 09:53:25

也许,0xffffd8是2的补码32位中的负数。0x19为正。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5540067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档