jg指令对经典英特尔处理器有何作用?

时间:2011-09-26 00:03:01

标签: x86

代码:

cmp $5, %eax
jg 804940f

通过执行%eax - $ 5进行比较,然后设置一个标志(如果它是更大,相等还是负数),是否正确?如果标志指示%eax大于$ 5,那么jg将继续到该地址?

1 个答案:

答案 0 :(得分:3)

它确实进行减法,但不保留结果。然后它相应地设置标志。关于第二行,你也是正确的,如果它更大,那么它会跳跃,如果没有,那么它会跳过跳转并继续执行下一行。

编辑:如果您不熟悉汇编,您可能会发现访问标志寄存器的内容很有帮助。在英特尔汇编中有几种方法可以做到这一点,如果你需要低8位,那么你可以做lahf将它们加载到啊。如果你想要寄存器的全部内容,那么你可以使用pushf和popf。我希望这会有所帮助。