86 JAE指令
回答
jae
与jnc
相同,即如果CF == 0则跳转。所有3个助记符(包括jnb
)之间的选择取决于程序员。 CF不是由mov
设置的,而是由前面的指令设置的。在执行减法的比较指令(cmp
)后推荐使用助记符jae
。您可以在英特尔或AMD软件开发人员手册中获得更多详细信息。
jae
表示如果大于或等于,则跳转。它会跳,如果进位标志等于0
您正在寻找jnae
或jb
我不想找任何东西:)我正在看包含jae的代码,CF是零并且跳没有被采取? – user997112 2014-08-29 20:58:34
你一定在看一些不对的地方,因为这不是怎么样的行为 – Nowayz 2014-08-29 21:02:39
在Visual Studio中进行调试时,我可以看到进位标志的值,当我介入时,调试器不会跳转到分支的地址,只是继续它。 – user997112 2014-08-29 21:06:04
- 1. 86 lea指令
- 2. 认识86 R/M32指令
- 3. 确定86 MONITOR指令地址范围
- 4. 86 64装配
- 5. MOVZX 86编码
- 6. 86 MASM的Hello World
- 7. 阅读86
- 8. JNB 0(86)
- 9. 在86 NASM将
- 10. 86 ADDL VS subl
- 11. 创建86引导程序
- 12. 误区86的shellcode
- 13. realloc的86 x86_64的
- 14. SP(堆栈指针)抗调试圈套 - 86
- 15. 指令中的指令
- 16. Angular.JS - 一个指令中的指令,在指令中,指令内。范围问题
- 17. .NET任何CPU VS 86
- 18. 86调用机器代码
- 19. 86 MOV操作码折卸
- 20. 查找x(86))文件夹
- 21. 指令
- 22. 指令
- 23. 大会86的switch-case混乱
- 24. 角指令,指令通信定时器
- 25. 指令中的嵌套指令
- 26. 在父指令中附加子指令
- 27. 添加指令的角度指令
- 28. 指令可与其他指令沟通
- 29. AngularJS:在指令中包装指令
- 30. 指令访问的角度指令
我认为JAE是基于进位标志,而不是以前的指令的价值? – user997112 2014-08-29 20:59:44
FWIW,JAE不会将进位标志的值与其他值进行比较,只要进位标志为0,不管它为什么为0,它都会跳转。如果它是1,就像你说的那样,跳转不应该发生。 – 2014-08-29 22:45:22