对于代码:
cmp $5, %eax
jg 804940f这通过执行%eax - $5进行比较,然后设置一个标志(S),如果它大于、等于或为负,对吗?如果标志指示%eax大于$5,那么jg将继续到该地址?
发布于 2011-09-26 08:08:08
它确实做了一个减法,但它不会保持结果。然后,它相应地设置标志。你对第二行的判断也是正确的,如果它大于则跳转,如果不大于则跳过跳转并继续执行下一行。
编辑:如果你是汇编新手,你可能会发现访问标志寄存器的内容也很有帮助。在Intel汇编中有几种方法可以做到这一点,如果你需要低8位,那么你可以做lahf,它会将它们加载到啊。如果您想要寄存器的全部内容,那么可以使用pushf和popf。我希望这能帮到你。
https://stackoverflow.com/questions/7549471
复制相似问题