/* See $LK,"AsmHashLoad",A="MN:AsmHashLoad"$().

'!'= IEF_DONT_SWITCH_MODES
'&'= IEF_DFT
'%'= IEF_NOT_IN_64_BIT	Not Allowed in 64-bit.
'='= IEF_48_REX		Rex 0x48 only if in 64-bit mode.
'`'= IEF_REX_ONLY_R8_R15
'^'= IEF_REX_XOR_LIKE
'*'= IEF_STI_LIKE	Floating STI-like for UAsm.
'$$'= IEF_ENDING_ZERO	Ending zero for ENTER.

$FG,4$Note:$FG$ TempleOS uses nonstandard opcodes.
Asm is kind-of a bonus and I made changes
to make the assembler simpler. For opcodes
which can have different numbers of
args, I separated them out -- Like IMUL and IMUL2.
The assembler will not report certain invalid
forms. Get an Intel datasheet and learn
which forms are valid.

{Lock|Rep}{Seg|2E=NotBr|3E=Br}{OP}{ADD}{REX}

':' is start of alias list.	Marked with OCF_ALIAS.
*/

R8 AL 0;
R8 CL 1;
R8 DL 2;
R8 BL 3;
R8 AH 4;
R8 CH 5;
R8 DH 6;
R8 BH 7;
R8 R8u8 8;
R8 R9u8 9;
R8 R10u8 10;
R8 R11u8 11;
R8 R12u8 12;
R8 R13u8 13;
R8 R14u8 14;
R8 R15u8 15;
R8 RSPu8 20;
R8 RBPu8 21;
R8 RSIu8 22;
R8 RDIu8 23;

R16 AX 0;
R16 CX 1;
R16 DX 2;
R16 BX 3;
R16 SP 4;
R16 BP 5;
R16 SI 6;
R16 DI 7;
R16 R8u16 8;
R16 R9u16 9;
R16 R10u16 10;
R16 R11u16 11;
R16 R12u16 12;
R16 R13u16 13;
R16 R14u16 14;
R16 R15u16 15;

R32 EAX 0;
R32 ECX 1;
R32 EDX 2;
R32 EBX 3;
R32 ESP 4;
R32 EBP 5;
R32 ESI 6;
R32 EDI 7;
R32 R8u32 8;
R32 R9u32 9;
R32 R10u32 10;
R32 R11u32 11;
R32 R12u32 12;
R32 R13u32 13;
R32 R14u32 14;
R32 R15u32 15;

R64 RAX 0;
R64 RCX 1;
R64 RDX 2;
R64 RBX 3;
R64 RSP 4;
R64 RBP 5;
R64 RSI 6;
R64 RDI 7;
R64 R8 8;
R64 R9 9;
R64 R10 10;
R64 R11 11;
R64 R12 12;
R64 R13 13;
R64 R14 14;
R64 R15 15;
R64 R8u64 8;
R64 R9u64 9;
R64 R10u64 10;
R64 R11u64 11;
R64 R12u64 12;
R64 R13u64 13;
R64 R14u64 14;
R64 R15u64 15;

SEG ES 0;
SEG CS 1;
SEG SS 2;
SEG DS 3;
SEG FS 4;
SEG GS 5;

FSTK ST0 0;
FSTK ST1 1;
FSTK ST2 2;
FSTK ST3 3;
FSTK ST4 4;
FSTK ST5 5;
FSTK ST6 6;
FSTK ST7 7;

MM MM0 0;
MM MM1 1;
MM MM2 2;
MM MM3 3;
MM MM4 4;
MM MM5 5;
MM MM6 6;
MM MM7 7;

XMM XMM0 0;
XMM XMM1 1;
XMM XMM2 2;
XMM XMM3 3;
XMM XMM4 4;
XMM XMM5 5;
XMM XMM6 6;
XMM XMM7 7;

KEYWORD include		0;
KEYWORD define		1;
KEYWORD union		2;
KEYWORD catch		3;
KEYWORD class		4;
KEYWORD try		5;
KEYWORD if		6;
KEYWORD else		7;
KEYWORD for		8;
KEYWORD while		9;
KEYWORD extern		10;
KEYWORD _extern		11;
KEYWORD return		12;
KEYWORD sizeof		13;
KEYWORD _intern		14;
KEYWORD do		15;
KEYWORD asm		16;
KEYWORD goto		17;
KEYWORD exe		18;
KEYWORD break		19;
KEYWORD switch		20;
KEYWORD start 		21;
KEYWORD end  		22;
KEYWORD case		23;
KEYWORD default		24;
KEYWORD public		25;
KEYWORD offset		26;
KEYWORD import		27;
KEYWORD _import		28;
KEYWORD ifdef		29;
KEYWORD ifndef		30;
KEYWORD ifaot		31;
KEYWORD ifjit		32;
KEYWORD endif		33;
KEYWORD assert		34;
KEYWORD reg		35;
KEYWORD noreg		36;
KEYWORD lastclass	37;
KEYWORD no_warn	38;
KEYWORD help_index	39;
KEYWORD help_file	40;
KEYWORD static		41;
KEYWORD lock		42;
KEYWORD defined		43;
KEYWORD interrupt	44;
KEYWORD haserrcode	45;
KEYWORD argpop		46;
KEYWORD noargpop	47;

ASM_KEYWORD ALIGN	64;
ASM_KEYWORD ORG		65;
ASM_KEYWORD I0		66;
ASM_KEYWORD I8		67;
ASM_KEYWORD I16		68;
ASM_KEYWORD I32		69;
ASM_KEYWORD I64		70;
ASM_KEYWORD U0		71;
ASM_KEYWORD U8		72;
ASM_KEYWORD U16		73;
ASM_KEYWORD U32		74;
ASM_KEYWORD U64		75;
ASM_KEYWORD F64		76;
ASM_KEYWORD DU8		77;
ASM_KEYWORD DU16	78;
ASM_KEYWORD DU32	79;
ASM_KEYWORD DU64	80;
ASM_KEYWORD DUP		81;
ASM_KEYWORD USE16	82;
ASM_KEYWORD USE32	83;
ASM_KEYWORD USE64	84;
ASM_KEYWORD IMPORT	85;
ASM_KEYWORD LIST	86;
ASM_KEYWORD NOLIST	87;
ASM_KEYWORD BINFILE	88;

OPCODE PUSH
 0x0E, CS
 0x16, SS
 0x1E, DS
 0x06, ES
 0x0F 0xA0, FS
 0x0F 0xA8, GS
 0x6A, &IB IMM8
 0x68, 16 !IW IMM16
 0x68, 32 !ID IMM32
 0x50,+R 16 % R16
 0x50,+R 32 R32
 0x50,+R 32 `R64
 0xFF,/6 16 % RM16
 0xFF,/6 32 RM32
 0xFF,/6 32 RM64;
OPCODE PUSHAW 0x60, 16;
OPCODE PUSHAD 0x60, 32;
OPCODE PUSHFW 0x9C, 16;
OPCODE PUSHFD 0x9C, 32;
OPCODE POP
 0x1F, DS
 0x07, ES
 0x17, SS
 0x0F 0xA1, FS
 0x0F 0xA9, GS
 0x58,+R 16 R16
 0x58,+R 32 R32
 0x58,+R 32 `R64
 0x8F,/0 16 RM16
 0x8F,/0 32 RM32
 0x8F,/0 32 RM64;
OPCODE POPAW 0x61, 16;
OPCODE POPAD 0x61, 32;
OPCODE POPFW 0x9D, 16;
OPCODE POPFD 0x9D, 32;
OPCODE MOV
// 0xA0, AL MOFFS8
 0xA1, 16 AX MOFFS16
 0xA1, 32 EAX MOFFS32
// 0xA2, MOFFS8 AL
 0xA3, 16 MOFFS16 AX
 0xA3, 32 MOFFS32 EAX
 0x8A,/R R8 RM8
 0x8B,/R 16 R16 RM16
 0x8B,/R 32 R32 RM32
 0x8B,/R 32 R64 RM64
 0x88,/R RM8 R8
 0x89,/R 16 RM16 R16
 0x89,/R 32 RM32 R32
 0x89,/R 32 RM64 R64
 0x8C,/R 32 RM16 SREG
 0x8E,/R 32 SREG RM16
 0xB0,+R &R8 UIMM8
 0xB0,+R R8 IMM8
 0xB8,+R 16 &R16 UIMM16
 0xB8,+R 16 R16 IMM16
 0xB8,+R 32 &R32 UIMM32
 0xB8,+R 32 R32 IMM32
 0xB8,+R 32 `R64 UIMM32
 0xB8,+R 32 &R64 UIMM64
 0xB8,+R 32 R64 IMM64
 0xC6, &RM8 UIMM8
 0xC6, RM8 IMM8
 0xC7, 16 &RM16 UIMM16
 0xC7, 16 RM16 IMM16
 0xC7, 32 &RM32 UIMM32
 0xC7, 32 RM32 IMM32
 0xC7, 32 `RM64 UIMM32
 0xC7, 32 RM64 IMM32;

OPCODE ADC
 0x14, IB &AL UIMM8
 0x14, IB AL IMM8
 0x15, 16 IW &AX UIMM16
 0x15, 16 IW AX IMM16
 0x15, 32 ID &EAX UIMM32
 0x15, 32 ID EAX IMM32
 0x80,/2 IB RM8 IMM8
 0x83,/2 16 IB RM16 IMM8
 0x83,/2 32 IB RM32 IMM8
 0x83,/2 32 IB RM64 IMM8
 0x81,/2 16 IW RM16 IMM16
 0x81,/2 32 ID RM32 IMM32
 0x81,/2 32 ID RM64 IMM32
 0x12,/R R8 RM8
 0x13,/R 16 R16 RM16
 0x13,/R 32 R32 RM32
 0x13,/R 32 R64 RM64
 0x10,/R RM8 R8
 0x11,/R 16 RM16 R16
 0x11,/R 32 RM32 R32
 0x11,/R 32 RM64 R64;
OPCODE ADD
 0x04, IB &AL UIMM8
 0x04, IB AL IMM8
 0x05, 16 IW &AX UIMM16
 0x05, 16 IW AX IMM16
 0x05, 32 ID &EAX UIMM32
 0x05, 32 ID EAX IMM32
 0x80,/0 IB &RM8 UIMM8
 0x80,/0 IB RM8 IMM8
 0x83,/0 16 IB RM16 IMM8
 0x83,/0 32 IB RM32 IMM8
 0x83,/0 32 IB RM64 IMM8
 0x81,/0 16 IW RM16 IMM16
 0x81,/0 32 ID RM32 IMM32
 0x81,/0 32 ID RM64 IMM32
 0x02,/R R8 RM8
 0x03,/R 16 R16 RM16
 0x03,/R 32 R32 RM32
 0x03,/R 32 R64 RM64
 0x00,/R RM8 R8
 0x01,/R 16 RM16 R16
 0x01,/R 32 RM32 R32
 0x01,/R 32 RM64 R64;
OPCODE AND
 0x24, IB &AL UIMM8
 0x24, IB AL IMM8
 0x25, 16 IW &AX UIMM16
 0x25, 16 IW AX IMM16
 0x25, 32 ID &EAX UIMM32
 0x25, 32 ID EAX IMM32
 0x80,/4 IB &RM8 UIMM8
 0x80,/4 IB RM8 IMM8
 0x83,/4 16 IB RM16 IMM8
 0x83,/4 32 IB RM32 IMM8
 0x83,/4 32 IB RM64 IMM8
 0x81,/4 16 IW RM16 IMM16
 0x81,/4 32 ID RM32 IMM32
 0x81,/4 32 ID RM64 IMM32
 0x22,/R R8 RM8
 0x23,/R 16 R16 RM16
 0x23,/R 32 R32 RM32
 0x23,/R 32 R64 RM64
 0x20,/R RM8 R8
 0x21,/R 16 RM16 R16
 0x21,/R 32 RM32 R32
 0x21,/R 32 RM64 R64;
OPCODE CMP
 0x3C, IB &AL UIMM8
 0x3C, IB AL IMM8
 0x3D, 16 IW &AX UIMM16
 0x3D, 16 IW AX IMM16
 0x3D, 32 ID &EAX UIMM32
 0x3D, 32 ID EAX IMM32
 0x80,/7 IB &RM8 UIMM8
 0x80,/7 IB RM8 IMM8
 0x83,/7 16 IB RM16 IMM8
 0x83,/7 32 IB RM32 IMM8
 0x83,/7 32 IB RM64 IMM8
 0x81,/7 16 IW RM16 IMM16
 0x81,/7 32 ID RM32 IMM32
 0x81,/7 32 ID RM64 IMM32
 0x3A,/R R8 RM8
 0x3B,/R 16 R16 RM16 //ERROR?
 0x3B,/R 32 R32 RM32
 0x3B,/R 32 R64 RM64
 0x38,/R RM8 R8
 0x39,/R 16 RM16 R16
 0x39,/R 32 RM32 R32
 0x39,/R 32 RM64 R64;
OPCODE OR
 0x0C, IB &AL UIMM8
 0x0C, IB AL IMM8
 0x0D, 16 IW &AX UIMM16
 0x0D, 16 IW AX IMM16
 0x0D, 32 ID &EAX UIMM32
 0x0D, 32 ID EAX IMM32
 0x80,/1 IB &RM8 UIMM8
 0x80,/1 IB RM8 IMM8
 0x83,/1 16 IB RM16 IMM8
 0x83,/1 32 IB RM32 IMM8
 0x83,/1 32 IB RM64 IMM8
 0x81,/1 16 IW RM16 IMM16
 0x81,/1 32 ID RM32 IMM32
 0x81,/1 32 ID RM64 IMM32
 0x0A,/R R8 RM8
 0x0B,/R 16 R16 RM16
 0x0B,/R 32 R32 RM32
 0x0B,/R 32 R64 RM64
 0x08,/R RM8 R8
 0x09,/R 16 RM16 R16
 0x09,/R 32 RM32 R32
 0x09,/R 32 RM64 R64;
OPCODE SBB
 0x1C, IB &AL UIMM8
 0x1C, IB AL IMM8
 0x1D, 16 IW &AX UIMM16
 0x1D, 16 IW AX IMM16
 0x1D, 32 ID &EAX UIMM32
 0x1D, 32 ID EAX IMM32
 0x80,/3 IB &RM8 UIMM8
 0x80,/3 IB RM8 IMM8
 0x83,/3 16 IB RM16 IMM8
 0x83,/3 32 IB RM32 IMM8
 0x83,/3 32 IB RM64 IMM8
 0x81,/3 16 IW RM16 IMM16
 0x81,/3 32 ID RM32 IMM32
 0x81,/3 32 ID RM64 IMM32
 0x1A,/R R8 RM8
 0x1B,/R 16 R16 RM16
 0x1B,/R 32 R32 RM32
 0x1B,/R 32 R64 RM64
 0x18,/R RM8 R8
 0x19,/R 16 RM16 R16
 0x19,/R 32 RM32 R32
 0x19,/R 32 RM64 R64;
OPCODE SUB
 0x2C, IB &AL UIMM8
 0x2C, IB AL IMM8
 0x2D, 16 IW &AX UIMM16
 0x2D, 16 IW AX IMM16
 0x2D, 32 ID &EAX UIMM32
 0x2D, 32 ID EAX IMM32
 0x80,/5 IB &RM8 UIMM8
 0x80,/5 IB RM8 IMM8
 0x83,/5 16 IB RM16 IMM8
 0x83,/5 32 IB RM32 IMM8
 0x83,/5 32 IB RM64 IMM8
 0x81,/5 16 IW RM16 IMM16
 0x81,/5 32 ID RM32 IMM32
 0x81,/5 32 ID RM64 IMM32
 0x2A,/R R8 RM8
 0x2B,/R 16 R16 RM16
 0x2B,/R 32 R32 RM32
 0x2B,/R 32 R64 RM64
 0x28,/R RM8 R8
 0x29,/R 16 RM16 R16
 0x29,/R 32 RM32 R32
 0x29,/R 32 RM64 R64;
OPCODE TEST
 0xA8, IB &AL UIMM8
 0xA8, IB AL IMM8
 0xA9, 16 IW &AX UIMM16
 0xA9, 16 IW AX IMM16
 0xA9, 32 ID &EAX UIMM32
 0xA9, 32 ID EAX IMM32
 0xF6,/0 IB &RM8 UIMM8
 0xF6,/0 IB RM8 IMM8
 0xF7,/0 16 IW RM16 IMM16
 0xF7,/0 32 ID RM32 IMM32
 0xF7,/0 32 ID RM64 IMM32
 0x84,/R RM8 R8
 0x85,/R 16 RM16 R16
 0x85,/R 32 RM32 R32
 0x85,/R 32 RM64 R64;
OPCODE NOP 0x90;
OPCODE NOP2 0x66 0x90;
OPCODE XCHG
 0x90,+R 16 R16 AX
 0x90,+R 16 AX R16
 0x90,+R 32 R32 EAX
 0x90,+R 32 EAX R32
 0x90,+R 32 R64 RAX
 0x90,+R 32 RAX R64
 0x86,/R R8 RM8
 0x87,/R 16 R16 RM16
 0x87,/R 32 R32 RM32
 0x87,/R 32 R64 RM64
 0x86,/R RM8 R8
 0x87,/R 16 RM16 R16
 0x87,/R 32 RM32 R32
 0x87,/R 32 RM64 R64;
OPCODE XOR
 0x34, IB &AL UIMM8
 0x34, IB AL IMM8
 0x35, 16 IW &AX UIMM16
 0x35, 16 IW AX IMM16
 0x35, 32 ID &EAX UIMM32
 0x35, 32 ID EAX IMM32
 0x80,/6 IB &RM8 UIMM8
 0x80,/6 IB RM8 IMM8
 0x83,/6 16 IB RM16 IMM8
 0x83,/6 32 IB RM32 IMM8
 0x83,/6 32 IB RM64 IMM8
 0x81,/6 16 IW RM16 IMM16
 0x81,/6 32 ID RM32 IMM32
 0x81,/6 32 ID RM64 IMM32
 0x32,/R R8 RM8
 0x33,/R 16 R16 RM16
 0x33,/R 32 R32 RM32
 0x33,/R 32 ^ R64 RM64
 0x30,/R RM8 R8
 0x31,/R 16 RM16 R16
 0x31,/R 32 RM32 R32
 0x31,/R 32 ^ RM64 R64;

OPCODE CMOVO
 0x0F 0x40,/R 16 R16 RM16
 0x0F 0x40,/R 32 R32 RM32
 0x0F 0x40,/R 32 R64 RM64;
OPCODE CMOVNO
 0x0F 0x41,/R 16 R16 RM16
 0x0F 0x41,/R 32 R32 RM32
 0x0F 0x41,/R 32 R64 RM64;
OPCODE CMOVB
 0x0F 0x42,/R 16 R16 RM16
 0x0F 0x42,/R 32 R32 RM32
 0x0F 0x42,/R 32 R64 RM64	:CMOVC CMOVNAE;
OPCODE CMOVAE
 0x0F 0x43,/R 16 R16 RM16
 0x0F 0x43,/R 32 R32 RM32
 0x0F 0x43,/R 32 R64 RM64	:CMOVNB CMOVNC;
OPCODE CMOVE
 0x0F 0x44,/R 16 R16 RM16
 0x0F 0x44,/R 32 R32 RM32
 0x0F 0x44,/R 32 R64 RM64	:CMOVZ;
OPCODE CMOVNE
 0x0F 0x45,/R 16 R16 RM16
 0x0F 0x45,/R 32 R32 RM32
 0x0F 0x45,/R 32 R64 RM64	:CMOVNZ;
OPCODE CMOVBE
 0x0F 0x46,/R 16 R16 RM16
 0x0F 0x46,/R 32 R32 RM32
 0x0F 0x46,/R 32 R64 RM64	:CMOVNA;
OPCODE CMOVA
 0x0F 0x47,/R 16 R16 RM16
 0x0F 0x47,/R 32 R32 RM32
 0x0F 0x47,/R 32 R64 RM64	:CMOVNBE;
OPCODE CMOVS
 0x0F 0x48,/R 16 R16 RM16
 0x0F 0x48,/R 32 R32 RM32
 0x0F 0x48,/R 32 R64 RM64;
OPCODE CMOVNS
 0x0F 0x49,/R 16 R16 RM16
 0x0F 0x49,/R 32 R32 RM32
 0x0F 0x49,/R 32 R64 RM64;
OPCODE CMOVP
 0x0F 0x4A,/R 16 R16 RM16
 0x0F 0x4A,/R 32 R32 RM32
 0x0F 0x4A,/R 32 R64 RM64	:CMOVPE;
OPCODE CMOVNP
 0x0F 0x4B,/R 16 R16 RM16
 0x0F 0x4B,/R 32 R32 RM32
 0x0F 0x4B,/R 32 R64 RM64	:CMOVPO;
OPCODE CMOVL
 0x0F 0x4C,/R 16 R16 RM16
 0x0F 0x4C,/R 32 R32 RM32
 0x0F 0x4C,/R 32 R64 RM64	:CMOVNGE;
OPCODE CMOVGE
 0x0F 0x4D,/R 16 R16 RM16
 0x0F 0x4D,/R 32 R32 RM32
 0x0F 0x4D,/R 32 R64 RM64	:CMOVNL;
OPCODE CMOVLE
 0x0F 0x4E,/R 16 R16 RM16
 0x0F 0x4E,/R 32 R32 RM32
 0x0F 0x4E,/R 32 R64 RM64	:CMOVNG;
OPCODE CMOVG
 0x0F 0x4F,/R 16 R16 RM16
 0x0F 0x4F,/R 32 R32 RM32
 0x0F 0x4F,/R 32 R64 RM64	:CMOVNLE;

OPCODE CALL
 0xE8, 16 !&CW REL16
 0xFF,/2 16 ! RM16
 0xE8, 32 !&CD REL32
 0xFF,/2 32 ! RM32
 0xFF,/2 32 !`RM64
// 0x9A, CD PTR1616
// 0xFF,/3 16 M1616
// 0x9A, 16 CP PTR1632
// 0x9A, 32 CP PTR3232
// 0xFF,/3 32 M1632
;

OPCODE JMP
 0xEB, &CB REL8
 0xE9, 16 !CW REL16
 0xE9, 32 !CD REL32
 0xFF,/4 16 ! RM16
 0xFF,/4 32 ! RM32
 0xFF,/4 32 ! RM64;

OPCODE JO
 0x70, &CB REL8
 0x0F 0x80, 16 !CW REL16
 0x0F 0x80, 32 !CD REL32;
OPCODE JNO
 0x71, &CB REL8
 0x0F 0x81, 16 !CW REL16
 0x0F 0x81, 32 !CD REL32;
OPCODE JB
 0x72, &CB REL8
 0x0F 0x82, 16 !CW REL16
 0x0F 0x82, 32 !CD REL32	:JC JNAE;
OPCODE JAE
 0x73, &CB REL8
 0x0F 0x83, 16 !CW REL16
 0x0F 0x83, 32 !CD REL32	:JNB JNC;
OPCODE JE
 0x74, &CB REL8
 0x0F 0x84, 16 !CW REL16
 0x0F 0x84, 32 !CD REL32	:JZ;
OPCODE JNE
 0x75, &CB REL8
 0x0F 0x85, 16 !CW REL16
 0x0F 0x85, 32 !CD REL32	:JNZ;
OPCODE JBE
 0x76, &CB REL8
 0x0F 0x86, 16 !CW REL16
 0x0F 0x86, 32 !CD REL32	:JNA;
OPCODE JA
 0x77, &CB REL8
 0x0F 0x87, 16 !CW REL16
 0x0F 0x87, 32 !CD REL32	:JNBE;
OPCODE JS
 0x78, &CB REL8
 0x0F 0x88, 16 !CW REL16
 0x0F 0x88, 32 !CD REL32;
OPCODE JNS
 0x79, &CB REL8
 0x0F 0x89, 16 !CW REL16
 0x0F 0x89, 32 !CD REL32;
OPCODE JP
 0x7A, &CB REL8
 0x0F 0x8A, 16 !CW REL16
 0x0F 0x8A, 32 !CD REL32	:JPE;
OPCODE JNP
 0x7B, &CB REL8
 0x0F 0x8B, 16 !CW REL16
 0x0F 0x8B, 32 !CD REL32	:JPO;
OPCODE JL
 0x7C, &CB REL8
 0x0F 0x8C, 16 !CW REL16
 0x0F 0x8C, 32 !CD REL32	:JNGE;
OPCODE JGE
 0x7D, &CB REL8
 0x0F 0x8D, 16 !CW REL16
 0x0F 0x8D, 32 !CD REL32	:JNL;
OPCODE JLE
 0x7E, &CB REL8
 0x0F 0x8E, 16 !CW REL16
 0x0F 0x8E, 32 !CD REL32	:JNG;
OPCODE JG
 0x7F, &CB REL8
 0x0F 0x8F, 16 !CW REL16
 0x0F 0x8F, 32 !CD REL32	:JNLE;

OPCODE JCXZ
 0xE3, CB REL8			:JECXZ JRCXZ;

OPCODE INC
 0x40,+R 16 % R16
 0x40,+R 32 % R32
 0xFE,/0 RM8
 0xFF,/0 16 RM16
 0xFF,/0 32 RM32
 0xFF,/0 32 RM64;
OPCODE DEC
 0x48,+R 16 % R16
 0x48,+R 32 % R32
 0xFE,/1 RM8
 0xFF,/1 16 RM16
 0xFF,/1 32 RM32
 0xFF,/1 32 RM64;
OPCODE NOT
 0xF6,/2 RM8
 0xF7,/2 16 RM16
 0xF7,/2 32 RM32
 0xF7,/2 32 RM64;
OPCODE NEG
 0xF6,/3 RM8
 0xF7,/3 16 RM16
 0xF7,/3 32 RM32
 0xF7,/3 32 RM64;
OPCODE MUL
 0xF6,/4 RM8
 0xF7,/4 16 RM16
 0xF7,/4 32 RM32
 0xF7,/4 32 RM64;
OPCODE IMUL
 0xF6,/5 RM8
 0xF7,/5 16 RM16
 0xF7,/5 32 RM32
 0xF7,/5 32 RM64;
OPCODE IMUL2
 0x0F 0xAF,/R 16 R16 RM16
 0x0F 0xAF,/R 32 R32 RM32
 0x0F 0xAF,/R 32 R64 RM64
 0x6B,/R 16 IB RM16 IMM8
 0x6B,/R 32 IB RM32 IMM8
 0x6B,/R 32 IB RM64 IMM8
 0x69,/R 16 IW &RM16 UIMM16
 0x69,/R 16 IW RM16 IMM16
 0x69,/R 32 ID &RM32 UIMM32
 0x69,/R 32 ID RM32 IMM32
 0x69,/R 32 ID &RM64 UIMM32
 0x69,/R 32 ID RM64 IMM32;
OPCODE DIV
 0xF6,/6 RM8
 0xF7,/6 16 RM16
 0xF7,/6 32 RM32
 0xF7,/6 32 RM64;
OPCODE IDIV
 0xF6,/7 RM8
 0xF7,/7 16 RM16
 0xF7,/7 32 RM32
 0xF7,/7 32 RM64;

OPCODE AAA 0x37;
OPCODE AAD 0xD5 0x0A;
OPCODE AAM 0xD4 0x0A;
OPCODE AAS 0x3F;
OPCODE ARPL 0x63,/R RM16 R16;
OPCODE BOUND
 0x62,/R 16 RM16 R16
 0x62,/R 32 RM32 R32
 0x62,/R 32 RM64 R64;
OPCODE BSF
 0x0F 0xBC,/R 16 R16 RM16
 0x0F 0xBC,/R 32 R32 RM32
 0x0F 0xBC,/R 32 R64 RM64;
OPCODE BSR
 0x0F 0xBD,/R 16 R16 RM16
 0x0F 0xBD,/R 32 R32 RM32
 0x0F 0xBD,/R 32 R64 RM64;
OPCODE BSWAP
 0x0F 0xC8,/R 32 R32
 0x0F 0xC8,/R 32 R64;
OPCODE BT
 0x0F 0xA3,/R 16 RM16 R16
 0x0F 0xA3,/R 32 RM32 R32
 0x0F 0xA3,/R 32 RM64 R64
 0x0F 0xBA,/4 16 IB &RM16 UIMM8
 0x0F 0xBA,/4 16 IB RM16 IMM8
 0x0F 0xBA,/4 32 IB &RM32 UIMM8
 0x0F 0xBA,/4 32 IB RM32 IMM8
 0x0F 0xBA,/4 32 IB &RM64 UIMM8
 0x0F 0xBA,/4 32 IB RM64 IMM8;
OPCODE BTC
 0x0F 0xBB,/R 16 RM16 R16
 0x0F 0xBB,/R 32 RM32 R32
 0x0F 0xBB,/R 32 RM64 R64
 0x0F 0xBA,/7 16 IB &RM16 UIMM8
 0x0F 0xBA,/7 16 IB RM16 IMM8
 0x0F 0xBA,/7 32 IB &RM32 UIMM8
 0x0F 0xBA,/7 32 IB RM32 IMM8
 0x0F 0xBA,/7 32 IB &RM64 UIMM8
 0x0F 0xBA,/7 32 IB RM64 IMM8;
OPCODE BTR
 0x0F 0xB3,/R 16 RM16 R16
 0x0F 0xB3,/R 32 RM32 R32
 0x0F 0xB3,/R 32 RM64 R64
 0x0F 0xBA,/6 16 IB &RM16 UIMM8
 0x0F 0xBA,/6 16 IB RM16 IMM8
 0x0F 0xBA,/6 32 IB &RM32 UIMM8
 0x0F 0xBA,/6 32 IB RM32 IMM8
 0x0F 0xBA,/6 32 IB &RM64 UIMM8
 0x0F 0xBA,/6 32 IB RM64 IMM8;
OPCODE BTS
 0x0F 0xAB,/R 16 RM16 R16
 0x0F 0xAB,/R 32 RM32 R32
 0x0F 0xAB,/R 32 RM64 R64
 0x0F 0xBA,/5 16 IB &RM16 UIMM8
 0x0F 0xBA,/5 16 IB RM16 IMM8
 0x0F 0xBA,/5 32 IB &RM32 UIMM8
 0x0F 0xBA,/5 32 IB RM32 IMM8
 0x0F 0xBA,/5 32 IB &RM64 UIMM8
 0x0F 0xBA,/5 32 IB RM64 IMM8;
OPCODE CBW 0x98, 16;
OPCODE CWDE 0x98, 32;
OPCODE CDQE 0x98, 32=;
OPCODE CWD 0x99, 16;
OPCODE CDQ 0x99, 32;
OPCODE CQO 0x99, 32=;
OPCODE CLC 0xF8;
OPCODE CLD 0xFC;
OPCODE CLI 0xFA;
OPCODE CLTS 0x0F 0x06;
OPCODE CMC 0xF5;
OPCODE CMPSB 0xA6;
OPCODE CMPSW 0xA7, 16;
OPCODE CMPSD 0xA7, 32;
OPCODE CMPSQ 0xA7, 32=;
OPCODE CMPXCHG
 0x0F 0xB0,/R RM8 R8
 0x0F 0xB1,/R 16 RM16 R16
 0x0F 0xB1,/R 32 RM32 R32
 0x0F 0xB1,/R 32 RM64 R64;
OPCODE CHPXCHG8B 0x0F 0xC7, RM64;
OPCODE DAA 0x27;
OPCODE DAS 0x2F;
OPCODE ENTER
 0xC8, $$IW IMM16;
OPCODE HLT 0xF4;
OPCODE IN
 0xE4, IB &AL UIMM8
 0xE4, IB AL IMM8
 0xE5, 16 IB &AX UIMM8
 0xE5, 16 IB AX IMM8
 0xE5, 32 IB &EAX UIMM8
 0xE5, 32 IB EAX IMM8
 0xEC, AL DX
 0xED, 16 AX DX
 0xED, 32 EAX DX;
OPCODE INS
 0x6C, RM8 DX
 0x6D, 16 RM16 DX
 0x6D, 32 RM32 DX;
OPCODE INSB 0x6C;
OPCODE INSW 0x6D, 16;
OPCODE INSD 0x6D, 32;
OPCODE INTO 0xCE;
OPCODE INT3 0xCC,		:BPT;
OPCODE INT 
 0xCD, IB &UIMM8
 0xCD, IB IMM8;
OPCODE INVD 0x0F 0x08;
OPCODE IRET 0xCF, 32=;
OPCODE LAHF 0x9F;
OPCODE LAR
 0x0F 0x02,/R 16 R16 RM16
 0x0F 0x02,/R 32 R32 RM32
 0x0F 0x02,/R 32 R64 RM64;
OPCODE LEA
 0x8D,/R 16 R16 RM16
 0x8D,/R 32 R32 RM32
 0x8D,/R 32 R64 RM64;
OPCODE LEAVE 0xC9;
OPCODE LGDT
 0x0F 0x01,/2 16 M16
 0x0F 0x01,/2 32 M32
 0x0F 0x01,/2 32 M64;
OPCODE SGDT
 0x0F 0x01,/0 16 M16
 0x0F 0x01,/0 32 M32
 0x0F 0x01,/0 32 M64;
OPCODE LIDT
 0x0F 0x01,/3 16 M16
 0x0F 0x01,/3 32 M32
 0x0F 0x01,/3 32 M64;
OPCODE SIDT 
 0x0F 0x01,/1 16 M16
 0x0F 0x01,/1 32 M32
 0x0F 0x01,/1 32 M64;
OPCODE LLDT
 0x0F 0x00,/2 RM16;
OPCODE SLDT
 0x0F 0x00,/0 16 RM16
 0x0F 0x00,/0 32 RM32
 0x0F 0x00,/0 32 RM64;
OPCODE LMSW
 0x0F 0x01,/6 RM16;
OPCODE SMSW
 0x0F 0x01,/4 16 RM16
 0x0F 0x01,/4 32 RM32
 0x0F 0x01,/4 32 RM64;
//OPCODE LGS LSS LFS LDS LES
OPCODE LOCK 0xF0;
OPCODE LODSB 0xAC;
OPCODE LODSW 0xAD, 16;
OPCODE LODSD 0xAD, 32;
OPCODE LODSQ 0xAD, 32=;
OPCODE LOOP 0xE2, CB REL8;
OPCODE LOOPE 0xE1, CB REL8	:LOOPZ;
OPCODE LOOPNE 0xE0, CB REL8	:LOOPNZ;
OPCODE LSL
 0x0F 0x03,/R 16 R16 RM16
 0x0F 0x03,/R 32 R32 RM32
 0x0F 0x03,/R 32 R64 RM64;
OPCODE LTR
 0x0F 0x00,/3 RM16;
OPCODE MOVSB 0xA4;
OPCODE MOVSW 0xA5, 16;
OPCODE MOVSD 0xA5, 32;
OPCODE MOVSQ 0xA5, 32=;
OPCODE MOVSX
 0x0F 0xBE,/R 16 R16 RM8
 0x0F 0xBE,/R 32 R32 RM8
 0x0F 0xBE,/R 32 R64 RM8
 0x0F 0xBF,/R 32 R32 RM16
 0x0F 0xBF,/R 32 R64 RM16;
OPCODE MOVSXD
 0x63,/R 32 R64 RM32;
OPCODE MOVZX
 0x0F 0xB6,/R 16 R16 RM8
 0x0F 0xB6,/R 32 R32 RM8
 0x0F 0xB6,/R 32 R64 RM8
 0x0F 0xB7,/R 32 R32 RM16
 0x0F 0xB7,/R 32 R64 RM16;
OPCODE OUT
 0xE6, IB &UIMM8 AL
 0xE6, IB IMM8 AL
 0xE7, 16 IB &UIMM8 AX
 0xE7, 16 IB IMM8 AX
 0xE7, 32 IB &UIMM8 EAX
 0xE7, 32 IB IMM8 EAX
 0xEE, DX AL
 0xEF, 16 DX AX
 0xEF, 32 DX EAX;
OPCODE OUTSB 0x6E;
OPCODE OUTSW 0x6F, 16;
OPCODE OUTSD 0x6F, 32;
OPCODE REP_INSB
 0xF3 0x6C, %
 0xF3 0x48 0x6C;
OPCODE REP_INSW 0xF3 0x6D, 16;
OPCODE REP_INSD 0xF3 0x6D, 32;
OPCODE REP_MOVSB
 0xF3 0xA4, %
 0xF3 0x48 0xA4;
OPCODE REP_MOVSW 0xF3 0xA5, 16;
OPCODE REP_MOVSD 0xF3 0xA5, 32;
OPCODE REP_MOVSQ 0xF3 0x48 0xA5, 32;
OPCODE REP_OUTSB,
 0xF3 0x6E, %
 0xF3 0x48 0x6E;
OPCODE REP_OUTSW 0xF3 0x6F, 16;
OPCODE REP_OUTSD 0xF3 0x6F, 32;
OPCODE REP_LODSB
 0xF2 0xAC, %
 0xF2 0x48 0xAC;
OPCODE REP_LODSW 0xF2 0xAD, 16;
OPCODE REP_LODSD 0xF2 0xAD, 32;
OPCODE REP_LODSQ 0xF2 0x48 0xAD, 32;
OPCODE REP_STOSB
 0xF3 0xAA, %
 0xF3 0x48 0xAA;
OPCODE REP_STOSW 0xF3 0xAB, 16;
OPCODE REP_STOSD 0xF3 0xAB, 32;
OPCODE REP_STOSQ 0xF3 0x48 0xAB, 32;
OPCODE REPE_CMPSB
 0xF3 0xA6, %
 0xF3 0x48 0xA6;
OPCODE REPE_CMPSW 0xF3 0xA7, 16;
OPCODE REPE_CMPSD 0xF3 0xA7, 32;
OPCODE REPE_CMPSQ 0xF3 0x48 0xA7, 32;
OPCODE REPE_SCASB
 0xF3 0xAE, %
 0xF3 0x48 0xAE;
OPCODE REPE_SCASW 0xF3 0xAF, 16;
OPCODE REPE_SCASD 0xF3 0xAF, 32;
OPCODE REPE_SCASQ 0xF3 0x48 0xAF, 32;
OPCODE REPNE_CMPSB
 0xF2 0xA6, %
 0xF2 0x48 0xA6;
OPCODE REPNE_CMPSW 0xF2 0xA7, 16;
OPCODE REPNE_CMPSD 0xF2 0xA7, 32;
OPCODE REPNE_CMPSQ 0xF2 0x48 0xA7, 32;
OPCODE REPNE_SCASB
 0xF2 0xAE, %
 0xF2 0x48 0xAE;
OPCODE REPNE_SCASW 0xF2 0xAF, 16;
OPCODE REPNE_SCASD 0xF2 0xAF, 32;
OPCODE REPNE_SCASQ 0xF2 0x48 0xAF, 32;
OPCODE RET 0xC3;
OPCODE RET1 0xC2, IW IMM16;
OPCODE RETF 0xCB;
OPCODE RETF1 0xCA, IW IMM16;
OPCODE REX 0x48;
OPCODE REX2 0x40;
OPCODE RSM 0x0F 0xAA;
OPCODE SAHF 0x9E;
OPCODE SCASB 0xAE;
OPCODE SCASW 0xAF, 16;
OPCODE SCASD 0xAF, 32;
OPCODE SCASQ 0xAF, 32=;
OPCODE SEGCS 0x2E;
OPCODE SEGSS 0x36;
OPCODE SEGDS 0x3E;
OPCODE SEGES 0x26;
OPCODE SEGFS 0x64;
OPCODE SEGGS 0x65;
OPCODE SETO  0x0F 0x90, RM8;
OPCODE SETNO 0x0F 0x91, RM8;
OPCODE SETB  0x0F 0x92, RM8	:SETC SETNAE;
OPCODE SETAE 0x0F 0x93, RM8	:SETNC SETNB;
OPCODE SETE  0x0F 0x94, RM8	:SETZ;
OPCODE SETNE 0x0F 0x95, RM8	:SETNZ;
OPCODE SETBE 0x0F 0x96, RM8	:SETNA;
OPCODE SETA  0x0F 0x97, RM8	:SETNBE;
OPCODE SETS  0x0F 0x98, RM8;
OPCODE SETNS 0x0F 0x99, RM8;
OPCODE SETP  0x0F 0x9A, RM8	:SETPE;
OPCODE SETNP 0x0F 0x9B, RM8	:SETPO;
OPCODE SETL  0x0F 0x9C, RM8	:SETNGE;
OPCODE SETGE 0x0F 0x9D, RM8	:SETNL;
OPCODE SETLE 0x0F 0x9E, RM8	:SETNG;
OPCODE SETG  0x0F 0x9F, RM8	:SETNLE;
OPCODE SHLD
 0x0F 0xA5,/R 16 RM16 R16
 0x0F 0xA5,/R 32 RM32 R32
 0x0F 0xA5,/R 32 RM64 R64;
OPCODE SHRD
 0x0F 0xAD,/R 16 RM16 R16
 0x0F 0xAD,/R 32 RM32 R32
 0x0F 0xAD,/R 32 RM64 R64;
OPCODE STC 0xF9;
OPCODE STD 0xFD;
OPCODE STI 0xFB;
OPCODE STOSB 0xAA;
OPCODE STOSW 0xAB, 16;
OPCODE STOSD 0xAB, 32;
OPCODE STOSQ 0xAB, 32=;
OPCODE STR
 0x0F 0x00,/1 16 RM16
 0x0F 0x00,/1 32 RM32
 0x0F 0x00,/1 32 RM64;
OPCODE VERR
 0x0F 0x00,/4 16 RM16
 0x0F 0x00,/4 32 RM32
 0x0F 0x00,/4 32 RM64;
OPCODE VERW
 0x0F 0x00,/5 16 RM16
 0x0F 0x00,/5 32 RM32
 0x0F 0x00,/5 32 RM64;
OPCODE WAIT 0x9B;
OPCODE FWAIT 0x9B;
OPCODE XADD
 0x0F 0xC0,/R RM8 R8
 0x0F 0xC1,/R 16 RM16 R16
 0x0F 0xC1,/R 32 RM32 R32
 0x0F 0xC1,/R 32 RM64 R64;
OPCODE XLATB 0xD7;

OPCODE ROL
 0xD2,/0 RM8 CL
 0xD3,/0 16 RM16 CL
 0xD3,/0 32 RM32 CL
 0xD3,/0 32 RM64 CL
 0xC0,/0 IB &RM8 UIMM8
 0xC0,/0 IB RM8 IMM8
 0xC1,/0 16 IB &RM16 UIMM8
 0xC1,/0 16 IB RM16 IMM8
 0xC1,/0 32 IB &RM32 UIMM8
 0xC1,/0 32 IB RM32 IMM8
 0xC1,/0 32 IB &RM64 UIMM8
 0xC1,/0 32 IB RM64 IMM8;
OPCODE ROL1
 0xD0,/0 RM8
 0xD1,/0 16 RM16
 0xD1,/0 32 RM32
 0xD1,/0 32 RM64;
OPCODE ROR
 0xD2,/1 RM8 CL
 0xD3,/1 16 RM16 CL
 0xD3,/1 32 RM32 CL
 0xD3,/1 32 RM64 CL
 0xC0,/1 IB &RM8 UIMM8
 0xC0,/1 IB RM8 IMM8
 0xC1,/1 16 IB &RM16 UIMM8
 0xC1,/1 16 IB RM16 IMM8
 0xC1,/1 32 IB &RM32 UIMM8
 0xC1,/1 32 IB RM32 IMM8
 0xC1,/1 32 IB &RM64 UIMM8
 0xC1,/1 32 IB RM64 IMM8;
OPCODE ROR1
 0xD0,/1 RM8
 0xD1,/1 16 RM16
 0xD1,/1 32 RM32
 0xD1,/1 32 RM64;
OPCODE RCL
 0xD2,/2 RM8 CL
 0xD3,/2 16 RM16 CL
 0xD3,/2 32 RM32 CL
 0xD3,/2 32 RM64 CL
 0xC0,/2 IB &RM8 UIMM8
 0xC0,/2 IB RM8 IMM8
 0xC1,/2 16 IB &RM16 UIMM8
 0xC1,/2 16 IB RM16 IMM8
 0xC1,/2 32 IB &RM32 UIMM8
 0xC1,/2 32 IB RM32 IMM8
 0xC1,/2 32 IB &RM64 UIMM8
 0xC1,/2 32 IB RM64 IMM8;
OPCODE RCL1
 0xD0,/2 RM8
 0xD1,/2 16 RM16
 0xD1,/2 32 RM32
 0xD1,/2 32 RM64;
OPCODE RCR
 0xD2,/3 RM8 CL
 0xD3,/3 16 RM16 CL
 0xD3,/3 32 RM32 CL
 0xD3,/3 32 RM64 CL
 0xC0,/3 IB &RM8 UIMM8
 0xC0,/3 IB RM8 IMM8
 0xC1,/3 16 IB &RM16 UIMM8
 0xC1,/3 16 IB RM16 IMM8
 0xC1,/3 32 IB &RM32 UIMM8
 0xC1,/3 32 IB RM32 IMM8
 0xC1,/3 32 IB &RM64 UIMM8
 0xC1,/3 32 IB RM64 IMM8;
OPCODE RCR1
 0xD0,/3 RM8
 0xD1,/3 16 RM16
 0xD1,/3 32 RM32
 0xD1,/3 32 RM64;
OPCODE SHL
 0xD2,/4 RM8 CL
 0xD3,/4 16 RM16 CL
 0xD3,/4 32 RM32 CL
 0xD3,/4 32 RM64 CL
 0xC0,/4 IB &RM8 UIMM8
 0xC0,/4 IB RM8 IMM8
 0xC1,/4 16 IB &RM16 UIMM8
 0xC1,/4 16 IB RM16 IMM8
 0xC1,/4 32 IB &RM32 UIMM8
 0xC1,/4 32 IB RM32 IMM8
 0xC1,/4 32 IB &RM64 UIMM8
 0xC1,/4 32 IB RM64 IMM8	:SAL;
OPCODE SHL1
 0xD0,/4 RM8
 0xD1,/4 16 RM16
 0xD1,/4 32 RM32
 0xD1,/4 32 RM64		:SAL1;
OPCODE SHR
 0xD2,/5 RM8 CL
 0xD3,/5 16 RM16 CL
 0xD3,/5 32 RM32 CL
 0xD3,/5 32 RM64 CL
 0xC0,/5 IB &RM8 UIMM8
 0xC0,/5 IB RM8 IMM8
 0xC1,/5 16 IB &RM16 UIMM8
 0xC1,/5 16 IB RM16 IMM8
 0xC1,/5 32 IB &RM32 UIMM8
 0xC1,/5 32 IB RM32 IMM8
 0xC1,/5 32 IB &RM64 UIMM8
 0xC1,/5 32 IB RM64 IMM8;
OPCODE SHR1
 0xD0,/5 RM8
 0xD1,/5 16 RM16
 0xD1,/5 32 RM32
 0xD1,/5 32 RM64;
OPCODE SAR
 0xD2,/7 RM8 CL
 0xD3,/7 16 RM16 CL
 0xD3,/7 32 RM32 CL
 0xD3,/7 32 RM64 CL
 0xC0,/7 IB &RM8 UIMM8
 0xC0,/7 IB RM8 IMM8
 0xC1,/7 16 IB &RM16 UIMM8
 0xC1,/7 16 IB RM16 IMM8
 0xC1,/7 32 IB &RM32 UIMM8
 0xC1,/7 32 IB RM32 IMM8
 0xC1,/7 32 IB &RM64 UIMM8
 0xC1,/7 32 IB RM64 IMM8;
OPCODE SAR1
 0xD0,/7 RM8
 0xD1,/7 16 RM16
 0xD1,/7 32 RM32
 0xD1,/7 32 RM64;

OPCODE FILD
 0xDF,/0 M16	//Load I16
 0xDB,/0 M32	//Load I32
 0xDF,/5 `M64;	//Load I64
OPCODE FISTP
 0xDF,/7 `M64;	//Store I64
OPCODE FISTTP
 0xDD,/1 `M64;	//Store I64
OPCODE FLD
 0xD9,/0 M32	//Load F32
 0xDD,/0 `M64	//Load F64
 0xD9 0xC0,+I* STI;
OPCODE FSTP
 0xD9,/3 M32	//Store F32
 0xDD,/3 `M64	//Store F64
 0xDD 0xD8,+I* STI;
OPCODE FST
 0xD9,/2 M32	//Store F32
 0xDD,/2 `M64	//Store F64
 0xDD 0xD0,+I* STI;
OPCODE FRSTOR
 0xDD,/4 M32
 0xDD,/4 M64;
OPCODE FSAVE
 0xDD,/6 M32
 0xDD,/6 M64;

OPCODE FYL2X 0xD9 0xF1,*;
OPCODE FYL2XP1 0xD9 0xF9,*;
OPCODE F2XM1 0xD9 0xF0,*;
OPCODE FABS 0xD9 0xE1,*;
OPCODE FCHS 0xD9 0xE0,*;
OPCODE FSIN 0xD9 0xFE,*;
OPCODE FCOS 0xD9 0xFF,*;
OPCODE FPTAN 0xD9 0xF2,*;
OPCODE FPATAN 0xD9 0xF3,*;
OPCODE FSQRT 0xD9 0xFA,*;
OPCODE FMULP 0xDE 0xC8,+I* STI ST0;
OPCODE FMUL 
 0xD8,/1 ST0 M32
 0xDC,/1 `ST0 M64
 0xD8 0xC8,+I* ST0 STI
 0xDC 0xC8,+I* STI ST0;
OPCODE FIMUL 
 0xDA,/1 ST0 M32
 0xDE,/1 ST0 M16;
OPCODE FDIVP 0xDE 0xF8,+I* STI ST0;
OPCODE FDIV 
 0xD8,/6 ST0 M32
 0xDC,/6 `ST0 M64
 0xD8 0xF0,+I* ST0 STI
 0xDC 0xF8,+I* STI ST0;
OPCODE FDIVRP 0xDE 0xF0,+I* STI ST0;
OPCODE FDIVR 
 0xD8,/7 ST0 M32
 0xDC,/7 `ST0 M64
 0xD8 0xF8,+I* ST0 STI
 0xDC 0xF0,+I* STI ST0;
OPCODE FPREM 0xD9 0xF8,*;
OPCODE FADDP 0xDE 0xC0,+I* STI ST0;
OPCODE FADD 
 0xD8,/0 ST0 M32
 0xDC,/0 `ST0 M64
 0xD8 0xC0,+I* ST0 STI
 0xDC 0xC0,+I* STI ST0;
OPCODE FSUBP 0xDE 0xE8,+I* STI ST0;
OPCODE FSUB 
 0xD8,/4 ST0 M32
 0xDC,/4 `ST0 M64
 0xD8 0xE0,+I* ST0 STI
 0xDC 0xE8,+I* STI ST0;
OPCODE FSUBRP 0xDE 0xE0,+I* STI ST0;
OPCODE FSUBR 
 0xD8,/5 ST0 M32
 0xDC,/5 `ST0 M64
 0xD8 0xE8,+I* ST0 STI
 0xDC 0xE0,+I* STI ST0;
OPCODE FCOMIP 0xDF 0xF0,+I* ST0 STI;
OPCODE FCOMI 0xDB 0xF0,+I* ST0 STI;
OPCODE FCLEX 0x9B 0xDB 0xE2,*;
OPCODE FNCLEX 0xDB 0xE2,*;
OPCODE FSTSW 0xDF 0xE0,*;
OPCODE FDECSTP 0xD9 0xF6,*;
OPCODE FINCSTP 0xD9 0xF7,*;
OPCODE FFREE 0xDD 0xC0,+I* STI;
OPCODE FRNDINT 0xD9 0xFC,*;
OPCODE FSCALE 0xD9 0xFD,*;
OPCODE FXTRACT 0xD9 0xF4,*;

OPCODE FLD1 0xD9 0xE8,*;
OPCODE FLDL2T 0xD9 0xE9,*;
OPCODE FLDL2E 0xD9 0xEA,*;
OPCODE FLDPI 0xD9 0xEB,*;
OPCODE FLDLG2 0xD9 0xEC,*;
OPCODE FLDLN2 0xD9 0xED,*;
OPCODE FLDZ 0xD9 0xEE,*;

OPCODE FXCH 0xD9 0xC8,+I* STI;
OPCODE FTST 0xD9 0xE4,*;
OPCODE FXAM 0xD9 0xE5,*;
OPCODE FINIT 0x9B 0xDB 0xE3;
OPCODE FNINIT 0xDB 0xE3;

OPCODE FSTCW 
 0xD9,/7 M16;
OPCODE FLDCW 
 0xD9,/5 M16;
OPCODE FXSAVE   //512 byte
 0x0F 0xAE,/0 32 M32
 0x0F 0xAE,/0 32 M64;
OPCODE FXRSTOR  //512 byte
 0x0F 0xAE,/1 32 M32
 0x0F 0xAE,/1 32 M64;

OPCODE WBINVD 0x0F 0x09;
OPCODE CLFLUSH 0x0F 0xAE,/7 RM8;
OPCODE INVLPG 0x0F 0x01,/7 RM8;
OPCODE CPUID 0x0F 0xA2, 32=;
OPCODE WRMSR 0x0F 0x30, 32=;
OPCODE RDTSC 0x0F 0x31;
OPCODE RDMSR 0x0F 0x32, 32=;
OPCODE PAUSE 0xF3 0x90;

OPCODE MOV_CR0_EAX 0x0F 0x22 0xC0;
OPCODE MOV_EAX_CR0 0x0F 0x20 0xC0;
OPCODE MOV_CR2_EAX 0x0F 0x22 0xD0;
OPCODE MOV_EAX_CR2 0x0F 0x20 0xD0;
OPCODE MOV_CR3_EAX 0x0F 0x22 0xD8;
OPCODE MOV_EAX_CR3 0x0F 0x20 0xD8;
OPCODE MOV_CR4_EAX 0x0F 0x22 0xE0;
OPCODE MOV_EAX_CR4 0x0F 0x20 0xE0;

OPCODE MOV_CR0_RAX 0x0F 0x22 0xC0, 32=;
OPCODE MOV_RAX_CR0 0x0F 0x20 0xC0, 32=;
OPCODE MOV_CR2_RAX 0x0F 0x22 0xD0, 32=;
OPCODE MOV_RAX_CR2 0x0F 0x20 0xD0, 32=;
OPCODE MOV_CR3_RAX 0x0F 0x22 0xD8, 32=;
OPCODE MOV_RAX_CR3 0x0F 0x20 0xD8, 32=;
OPCODE MOV_CR4_RAX 0x0F 0x22 0xE0, 32=;
OPCODE MOV_RAX_CR4 0x0F 0x20 0xE0, 32=;
