模式 | default operand size | effective operand size | prefix | REX prefix | 描述 |
16 模式 | 16 | 16 | --- | --- | 16 位模式下的 2 种 default operand size 的情形 |
32 | 66H | ||||
32 | 16 | 66H | |||
32 | --- | ||||
32 模式 | 16 | 16 | --- | --- | 32 位模式下的 2 种 default operand size 的情形 |
32 | 66H | ||||
32 | 16 | 66H | |||
32 | --- | ||||
64 模式 | 32 | 16 | 66H | --- | 64 位模式下的 2 种 default operand size 情形 |
32 | --- | --- | |||
64 | --- | REX.W = 1 | |||
* 64 | 16 | 66H | --- | ||
64 | --- |
Prefix 与 Opcode 共享空间的原因是:Prefix 是可选的。在编码序列里,只有 Opcode 是不可缺少的,其它都是可选。这就决定了指令编码中的第 1 个字节对解码工作的重要性。 |
--- | 值 | 说明 |
escape prefix | 0f | 引导 opcode |
0f 38 | ||
0f 3A | ||
SIMD prefix | 66 | SIMD 指令修饰性 prefix |
F3 | ||
F2 |
ModRM.mod | ModRM.r/m | ModRM.r/m 寻址 |
00 | 000 | [bx+si] |
001 | [bx+di] | |
010 | [bp+si] | |
011 | [bp+di] | |
100 | [si] | |
101 | [di] | |
110 | [disp16] | |
111 | [bx] | |
01 | 000 | [bx+si+disp8] |
001 | [bx+di+disp8] | |
010 | [bp+si+disp8] | |
011 | [bp+di+disp8] | |
100 | [si+disp8] | |
101 | [di+disp8] | |
110 | [bp+disp8] | |
111 | [bx+disp8] | |
10 | 000 | [bx+si+disp16] |
001 | [bx+di+disp16] | |
010 | [bp+si+disp16] | |
011 | [bp+di+disp16] | |
100 | [si+disp16] | |
101 | [di+disp16] | |
110 | [bp+disp16] | |
111 | [bx+disp16] | |
11 | 000 | ax |
001 | cx | |
010 | dx | |
011 | bx | |
100 | sp | |
101 | bp | |
110 | si | |
111 | di |
ModRM.mod | ModRM.r/m | ModRM.r/m 寻址 | ||
REX.B = 0 | REX.B = 1 | |||
00 | 000 | [rax] | [r8] | |
001 | [rcx] | [r9] | ||
010 | [rdx] | [r10] | ||
011 | [rbx] | [r11] | ||
100 | [SIB] | [SIB] | ||
101 | [disp32] 或 [rip + disp32] * | [disp32] 或 [rip + disp32] | ||
110 | [rsi] | [r14] | ||
111 | [rdi] | [r15] | ||
01 | 000 | [rax + disp8] | [r8 + disp8] | |
001 | [rcx + disp8] | [r9 + disp8] | ||
010 | [rdx + disp8] | [r10 + disp8] | ||
011 | [rbx + disp8] | [r11 + disp8] | ||
100 | [SIB + disp8] | [SIB + disp8] | ||
101 | [rbp + disp8] | [r13 + disp8] | ||
110 | [rsi + disp8] | [r14 + disp8] | ||
111 | [rdi + disp8] | [r15 + disp8] | ||
10 | 000 | [rax + disp32] | [r8 + disp32] | |
001 | [rcx + disp32] | [r9 + disp32] | ||
010 | [rdx + disp32] | [r10 + disp32] | ||
011 | [rbx + disp32] | [r11 + disp32] | ||
100 | [SIB + disp32] | [SIB + disp32] | ||
101 | [rbp + disp32] | [r13 + disp32] | ||
110 | [rsi + disp32] | [r14 + disp32] | ||
111 | [rdi + disp32] | [r15 + disp32] | ||
11 | 000 | rax | r8 | |
001 | rcx | r9 | ||
010 | rdx | r10 | ||
011 | rbx | r11 | ||
100 | rsp | r12 | ||
101 | rbp | r13 | ||
110 | rsi | r14 | ||
111 | rdi | r15 |
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |