我有一些汇编代码没有按照预期的方式运行,特别是下面这些行:
cmp $0x5, %eax jg
字符串我正在单步执行gdb,并使用cmp在该行上放置一个断点。因此,0x5大于0x1,所以它应该跳转。然而代码没有跳转。我错过了什么简单的东西吗?
falq053o1#
我认为你的困惑是由&#^?%*$!AT&T语法引起的:)在英特尔自己的语法中,
cmp eax, 5 jg
字符串这(恕我直言)使得如果eax的值大于5则进行跳转更加明显。
pw136qt22#
查看文档。Intel语法更清晰:http://en.wikibooks.org/wiki/X86_Assembly/Control_Flow
2条答案
按热度按时间falq053o1#
我认为你的困惑是由&#^?%*$!AT&T语法引起的:)
在英特尔自己的语法中,
字符串
这(恕我直言)使得如果eax的值大于5则进行跳转更加明显。
pw136qt22#
查看文档。Intel语法更清晰:http://en.wikibooks.org/wiki/X86_Assembly/Control_Flow