{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