Code First character after #:
A: Direct Address.
C: Reg field in ModRm specifies Control register.
D: Reg field in ModRm specifies Debug register.
E: General purpose register or memory address specified in the ModRM byte.
F: EFlags register
G: Reg field in ModRM specifies a general register
H: Signed immidiate data
I: Imidiate data
J: Relative jump Offset
M: memory address spcified in the ModRM byte.
O: Relative Offset Word or DWord
P: Reg field in ModRM specifies a MMX register
Q: MMX register or memory address specified in the ModRM byte.
R: general purpose register specified in the ModRM byte.
S: Reg field in ModRM specifies a Segment register
T: Reg field in ModRM specifies a MMX register
P: Seg prefix override.
Second character after #
a: two Word or two DWord, only used by BOUND
b: Byte.
c: Byte or word
d: DWord
p: 32 or 16 bit pointer
q: QWord
s: 6Byte
v: Word or DWord
w: Word
t: Tera byte
Third character after #
j: jump Operand (Relative or absolute)
First character after @
e: used by register (@eax, @esp ..) return e with the character following when
operand size = 4 ortherwise only the following character.
g: Group, return the group insruction specified by OperandType
and the reg field of the ModRM byte.
h: Operand for group, return operands for the group insruction specified
by OperandType and the reg field of the ModRM byte.
m: Must have size, Size indicator always set.
o: Operand size, returns the name (bwdq) of the number following, divided
by two when operand size <> 4.
p: Seg prefix override. Sets the prefix to the following charchter + 's'
s: Size override (address or operand).
follow by o: operand size override
a: address size override
First character after %
c: Use the opcode instead in addition to the assembler instruction