转移地址

直接转移

条件转移

1、段内直接寻址

相对寻址方式,可为 8 位或 16 位偏移量。

JMP NEAR PTR ProgIa  ; 16 位偏移量
JMP SHORT Quest      ;  8 位偏移量

2、段内间接寻址

寻址可以使用除立即寻址方式以外的所有寻址方式。

JMP BX
JMP WORD PTR [BP + Table]
JMP [BX][SI]

3、段间直接寻址

直接转移到符号地址 NextRoundInt

JMP FAR PTR NextRountInt

4、段间间接寻址

从存储器中取出偏移量和段地址,直接转移。

JMP DWORD PTR [INTERS + BX]
JZ/JE OPR ZF=1,为零
JNZ/JNE OPR ZF=0,非零
JS SF=1,负
JNS SF=0,非负
JO OF=1,溢出
JNO OF=0,不溢出
JP/JPE PF=1,奇数
JNP/JPO PF=0,偶数
JB/JNAE/JC CF=1,进位,无符号小于
JNB/JAE/JNC CF=0,无进位,无符号大于等于
JBE/JNA CF=1 OR ZF=1,无符号小于等于
JNBE/JA CF=0 AND ZF=0,无符号大于
JL/JNGE SF <> OF,带符号小于
JNL/JGE SF = OF,带符号大于等于
JLE/JNG SF = OF OR ZF=1,带符号小于等于
JNLE/JG SF <> OF AND ZF=0,带符号大于
JCXZ CX=0

5、循环指令

LOOP CX = CX-1、CX<>0 转移
LOOPZ/LOOPE CX = CX-1、CX<>0 and ZF=1 转移
LOOPNZ/LOOPNE CX = CX-1、CX<>0 and ZF=0 转移

6、子程序调用返回

CALL DST ; 段内 SP = SP-2
[SP] = IP
IP = EA
CALL DST ; 段间 SP = SP-2
[SP] = CS
SP = SP-2
[SP] = IP
RET 与 CALL 操作相反
RET EXP 除同 RET 外,增加 SP = SP + EXP

EXP 一般为 CALL 调用之前入栈的参数