1 转移指令:条件转移和无条件转移
2 条件转移指令:
| 条件转移指令 | |||
| JXX 标号 | |||
| 单标志条件转移: | |||
| JC (JNC) |
有(无)进位则转 | CF=1(CF=0) | |
| JP (JNP) | 1个数为偶数则转 | PF=1 | |
| JZ (JNZ) | 为零则转 | ZF=1 | |
| JS (JNS) | 为负数则转 | SF=1 | |
| JO (JNO) | 溢出则转 | OF=1 | |
| 无符号数专用: | |||
| JA (JBE) | > (JBE<=) | CF=0 && Zf=0 |
JA与JBE相反 |
| JB (JAE) | < (JAE>=) | CF=1 | JB与JAE相反 |
| 有符号数专用: | |||
| JG (JLE) | > | SF=OF且ZF=0 | JG与JLE相反 |
| JL (JGE) | < | SF!=OF且ZF=0 |
附上ADD对标志位的影响:(SUB与ADD基本一致,CMP除不更改目的操作符之外,与SUB一致)
| OF | 字节运算结果超出字节有符号数的范围(-128~+127)或字运算超出字有符号数范围(-32768~+32767)时,OF=1否则OF=0。把操作数视为有符号数时,可以通过此标志了解是否溢出。 |
| SF | 运算结果的最高位为1时,SF=1,否者SF=0 (SF与结果的最高位一致) |
| ZF |

这篇博客深入探讨了80x86汇编语言中的分支程序设计,包括条件转移和无条件转移指令。文章详细介绍了条件转移指令如何根据标志位进行判断,并给出了ADD指令对标志位的影响。此外,还强调了8086和80286中短标号的限制以及80386以上指令集对近标号的使用。无条件转移指令JMP的应用场景也被提及,分为直接和间接两种方式。最后,文章讨论了测试法和跳转表法这两种常见的分支程序设计方法,为读者提供了全面的理解。
最低0.47元/天 解锁文章
8569

被折叠的 条评论
为什么被折叠?



