跳转指令分三类:
一、无条件跳转: JMP;
二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);
三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了.
JMP 无条件转移指令
1、段内直接短转移
2、段内直接近转移
3、段内间接近转移
4、段间直接远转移
5、段间间接远转移
条件转移指令
根据标志位跳转的指令:
JZ ;为 0 则跳转 jump if zero, JNZ ;不为 0 则跳转 JE ;等于则跳转 jump if equal JNE ;不等于则跳转
JS ;结果为负则转移 JNS ;结果为正则转移 JO ;溢出则转移 JPO ;不溢出则转移
JP(JPE) ;奇偶位为1则跳转 JNP(JPO) ;奇偶位为0则跳转 JC ;进位则跳转 jump JNC ;不进位则跳转
JA ;无符号大于则跳转 JNA ;无符号不大于则跳转 JAE ;无符号大于等于则跳转 JNAE ;无符号不大于等于则跳转 JG ;有符号大于则跳转 JNG ;有符号不大于则跳转 JGE ;有符号大于等于则跳转 JNGE ;有符号不大于等于则跳转 JB ;无符号小于则跳转 JNB ;无符号不小于则跳转 JBE ;无符号小于等于则跳转 JNBE ;无符号不小于等于则跳转 JL ;有符号小于则跳转 JNL ;有符号不小于则跳转 JLE ;有符号小于等于则跳转 JNLE ;有符号不小于等于则跳转 JPE ;奇偶位相等则跳转 JPO ;奇偶位不等则跳转
跳转相关的标志位:
11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|
OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||
溢 出 |
符 号 |
零 | 未 用 |
辅 助 |
未 用 |
奇 偶 |
未 用 |
进 位 |
时间: 2024-12-22 19:36:29