我有一些x86代码,如下所示:
; The carry flag is set to 1 here
jae an_address ; The jump instruction does not take place
这有意义吗?
我认为应该进行跳转,因为1大于或等于0,JAE
的定义?
答案 0 :(得分:9)
jae
与jnc
相同,即如果CF == 0则跳转。所有3个助记符(包括jnb
)之间的选择取决于程序员。 CF不是由mov
设置的,而是由之前的指令设置的。在进行减法的比较指令(jae
)之后,建议使用助记符cmp
。您可以在英特尔或AMD软件开发人员手册中获得更多详细信息。
答案 1 :(得分:5)
jae
表示如果高于或等于跳跃。如果进位标志等于0,它将跳转。
您正在寻找jnae
或jb