我有一些x86代码,看起来像:
; The carry flag is set to 1 here
jae an_address ; The jump instruction does not take place
Run Code Online (Sandbox Code Playgroud)
这有意义吗?
我认为跳跃应该发生,因为1大于或等于0,定义为JAE
?
jae
是相同的jnc
,即如果CF == 0则跳转.所有3个助记符(包括jnb
)之间的选择取决于程序员.CF不是在此处设置,mov
而是由之前的指令设置.在执行减法的jae
比较指令(cmp
)之后,建议使用助记符.您可以在英特尔或AMD软件开发人员手册中获得更多详细信息.