我有一些x86代码,如下所示:

;  The carry flag is set to 1 here
jae    an_address  ; The jump instruction does not take place

这有意义吗?

我以为应该发生跳转,因为1大于或等于0,即JAE的定义?

最佳答案

jaejnc相同,即CF == 0时跳转。所有3种助记符(包括jnb)之间的选择均由程序员决定。 CF不是由mov设置的,而是由前一条指令设置的。建议在执行减法的比较指令(jae)之后使用助记符cmp。您可以在Intel或AMD软件开发人员手册中获得更多详细信息。

关于assembly - x86 JAE指令与进位标志有什么关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25575849/

10-11 16:34