1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
{imm} only parameter:
- is {s} in opcode: {s} == 0, unsigned (8/)16/32 bit immediate
{s} == 1, signed 8 bit immediate
{es:di}: segment register normally %es, can be overwritten
edi/di depending on apfx
{ds:si}: segment register normally %ds, can be overwritten
esi/si depending on apfx
{ax} al/ax/eax depending of dpfx and w
{dx} (%edx) or (%dx) depending on apfx
{w} 0 = b, 1 = { no dpfx = l, dpfx = w }
{W} no dpfx = <empty>, dpfx = w
{WW} no dpfx = l, dpfx = w
{R} rep prefix possible
{RE} repe or repne prefix possible
{ccc} CRx registers
{ddd} DRx registers
{gg} 00 = b, 01 = w, 10 = d, 11 = <illegal>
{0g} 00 = b, 01 = w, 10 = <illegal>, 11 = <illegal>
{GG} 00 = <illegal>, 01 = w, 10 = d, 11 = q
{gG} 00 = <illegal>, 01 = w, 10 = d, 11 = <illegal>
{modr/m} normal registers
{MODR/M} MMX registers
{ModR/m} XMM registers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Special opcodes (prefixes):
01100111:{apfx}
01100110:{dpfx}
00101110:{cs}
00111110:{ds}
00100110:{es}
01100100:{fs}
01100101:{gs}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
table format
1bit RE flag
1bit R flag
16bit mnemonic
3bit suffix
5bit fct
2bit string
6bit offset1
5bit offset2
4bit fct
1bit string
6bit offset1
4bit offset2
2bit fct
1bit string
3bit offset1
1bit offset2
61bit
|