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