Opcode format

opcode hexadecimal digit(s)

/digit (digit is between 0 and 7)
Indicates that the ModR/M byte of the instruction uses only the
r/m (register or memory) operand. The reg field contains the
digit that provides an extension to the instruction's opcode.

/r Indicates that the ModR/M byte of the instruction contains both
a register operand and an r/m operand.

cb, cw, cd, cp
A 1-byte (cb), 2-byte (cw), 4-byte (cd), or 6-byte (cp) value
following the opcode that is used to specify a code offset and
possibly a new value for the code segment register.

ib, iw, id
A 1-byte (ib), 2-byte (iw), or 4-byte (id) immediate operand to
the instruction that follows the opcode, ModR/M bytes, or
scale-indexing bytes. The opcode determines if the operand is a
signed value. All words and doublewords are given with the
low-order byte first.

+rb, +rw, +rd
A register code, from 0 through 7, added to the hexadecimal
byte given at the left of the plus sign to form a single opcode
byte. The codes are:

rb rw rd
al = 0 ax = 0 eax = 0
cl = 1 cx = 1 ecx = 1
dl = 2 dx = 2 edx = 2
bl = 3 bx = 3 ebx = 3
ah = 4 sp = 4 esp = 4
ch = 5 bp = 5 ebp = 5
dh = 6 si = 6 esi = 6
bh = 7 di = 7 edi = 7