我有一些组件代码没有按预期运行,特别是这些行:
cmp $0x5, %eax
jg
我正在逐步完成gdb,并在cmp上使用断点。
在那个时间点,eax保持值0x1
因此,0x5大于0x1,所以应该跳转。但是代码没有跳跃。
我在这里错过了一些简单的东西吗?
答案 0 :(得分:1)
我认为你的困惑是由&#^?%* $引起的! AT& T语法:)
在英特尔自己的语法中,它将是
cmp eax, 5
jg
如果eax的值大于5,那么(恕我直言)会更明显地进行跳转。
答案 1 :(得分:0)
查看文档。英特尔语法更清晰:http://en.wikibooks.org/wiki/X86_Assembly/Control_Flow