0x70 - 0x7F
- 条件跳转,后跟一个字节立即数的偏移(有符号),共两个字节。
- 如果条件成立,跳转到 当前指令地址 + 当前指令长度 + lb。
- 最大值:向前跳7F,向后跳80。
硬编码 |
汇编 |
0x70 |
JO |
0x71 |
JNO |
0x72 |
JB/JNAE/JC |
0x73 |
JNB/JAE/JNC |
0x74 |
JZ/JE |
0x75 |
JNZ/JNE |
0x76 |
JBE/JNA |
0x77 |
JNBE/JA |
0x78 |
JS |
0x79 |
JNS |
0x7A |
JP/JPE |
0x7B |
JNP/JPO |
0x7C |
JL/JNGE |
0x7D |
JNL/JGF |
0x7E |
JLE/JNG |
0x7F |
JNLE/JG |
0x0F 0x80 - 0x0F 0x8F
- 条件跳转,后跟四个字节立即数的偏移(有符号),共五个字节。
- 如果条件成立,跳转到 当前指令地址 + 当前指令长度 + ld。
- 最大值:向前跳7FFFFFFFF,向后跳80000000。
硬编码 |
汇编 |
0xF0 0x80 |
JO |
0xF0 0x81 |
JNO |
0xF0 0x82 |
JB/JNAE/JC |
0xF0 0x83 |
JNB/JAE/JNC |
0xF0 0x84 |
JZ/JE |
0xF0 0x85 |
JNZ/JNE |
0xF0 0x86 |
JBE/JNA |
0xF0 0x87 |
JNBE/JA |
0xF0 0x88 |
JS |
0xF0 0x89 |
JNS |
0xF0 0x8A |
JP/JPE |
0xF0 0x8B |
JNP/JPO |
0xF0 0x8C |
JL/JNGE |
0xF0 0x8D |
JNL/JGF |
0xF0 0x8E |
JLE/JNG |
0xF0 0x8F |
JNLE/JG |
其他指令1
硬编码 |
汇编 |
长度 |
说明 |
0xE0 |
LOOPNE/LOOPNZ lb (Jb) |
2字节 |
ECX = ECX - 1;当ZF = 0 && ECX != 0 时跳转到 当前指令地址 + 当前指令长度 + lb。 |
0xE1 |
LOOPE/LOOPZ lb (Jb) |
2字节 |
ECX = ECX - 1;当ZF = 1 && ECX != 0 时跳转到 当前指令地址 + 当前指令长度 + lb。 |
0xE2 |
LOOP lb (Jb) |
2字节 |
ECX = ECX - 1;当 ECX != 0 时跳转到 当前指令地址 + 当前指令长度 + lb。 |
0xE3 |
JrCXZ lb (Jb) 在32位中rCX为ECX |
2字节 |
当 ECX = 0 时跳转到 当前指令地址 + 当前指令长度 + lb。自行控制步长。 |
0xE8 |
CALL ld (Jd) |
5字节 |
CALL 指令的下一条地址入栈后,跳转到 当前指令地址 + 当前指令长度 + ld。 |
0xE9 |
JMP ld (Jd) |
5字节 |
跳转到 当前指令地址 + 当前指令长度 + ld。 |
其他指令2
8个顺序固定的段寄存器:ES、CS、SS、DS、FS、GS、LDTR、TR