不确定汇编中的 cmp/jg 行为

问题描述 投票:0回答:2

我有一些汇编代码的行为不符合预期,特别是这些行:

cmp $0x5, %eax
jg 

我正在单步执行 gdb,并使用 cmp 在该行上放置一个断点。 此时,eax 的值是

0x1

因此,0x5 大于 0x1,因此应该进行跳转。然而代码并没有跳转。

我在这里错过了一些简单的事情吗?

assembly x86 att
2个回答
1
投票

我认为您的困惑是由&#^?%*$ 引起的! AT&T 语法:)

按照英特尔自己的语法,它会是

cmp eax, 5
jg

(恕我直言)使得如果 eax 的值大于 5 则跳转更加明显。


0
投票

检查文档。 Intel 语法更清晰:http://en.wikibooks.org/wiki/X86_Assembly/Control_Flow

© www.soinside.com 2019 - 2024. All rights reserved.