gpt4 book ai didi

assembly - 关于AT&T语法汇编中的cmp/jg、jle等

转载 作者:行者123 更新时间:2023-12-01 19:59:00 25 4
gpt4 key购买 nike

所以每个在线资源都告诉我这样的事情:

cmp %eax, %ebx
jg < something >
如果 eax 大于 ebx,

将跳转到 。但我有另一段代码似乎与此相矛盾:

cmp $0x2, %eax
jg < something>

当 eax 的值为 3 时,它会跳转到

我是否遗漏了什么,或者如果 b > a 而不是 a>b, cmp a, b - jg 是否执行?这也适用于其他跳转语句吗?

最佳答案

当我们读到类似的内容

cmp $0x2, %eax
jg < something >

我们知道所使用的汇编器是反转指令操作数位置的汇编器。这是因为英特尔的语法规定目标操作数位于源操作数之前,并且显然像 $0x2 这样的立即值永远不可能是目标!

知道了事情的顺序,我们现在将您的第一个代码片段解释为

cmp ebx, eax
jg < something > ;jump if EBX > EAX

第二个代码片段为

cmp eax, 2
jg < something > ;jump if EAX > 2

And does this apply to other jump statements as well?

确实如此。

关于assembly - 关于AT&T语法汇编中的cmp/jg、jle等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574147/

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