882 lines
19 KiB
Plaintext
882 lines
19 KiB
Plaintext
/*
|
|
'%'= 32 bit
|
|
'*'= 16 bit
|
|
'!'= don't switch modes
|
|
'&'= default
|
|
*/
|
|
R8 AL 0;
|
|
R8 CL 1;
|
|
R8 DL 2;
|
|
R8 BL 3;
|
|
R8 AH 4;
|
|
R8 CH 5;
|
|
R8 DH 6;
|
|
R8 BH 7;
|
|
R16 AX 0;
|
|
R16 CX 1;
|
|
R16 DX 2;
|
|
R16 BX 3;
|
|
R16 SP 4;
|
|
R16 BP 5;
|
|
R16 SI 6;
|
|
R16 DI 7;
|
|
R32 EAX 0;
|
|
R32 ECX 1;
|
|
R32 EDX 2;
|
|
R32 EBX 3;
|
|
R32 ESP 4;
|
|
R32 EBP 5;
|
|
R32 ESI 6;
|
|
R32 EDI 7;
|
|
SEG ES 0;
|
|
SEG CS 1;
|
|
SEG SS 2;
|
|
SEG DS 3;
|
|
SEG FS 4;
|
|
SEG GS 5;
|
|
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 LTextern 11;
|
|
KEYWORD return 12;
|
|
KEYWORD sizeof 13;
|
|
KEYWORD LTintern 14;
|
|
KEYWORD fmtstr 15;
|
|
KEYWORD fmtdata 16;
|
|
KEYWORD output_fun 17;
|
|
KEYWORD input_fun 18;
|
|
KEYWORD cout 19;
|
|
KEYWORD dbgo 19; /*used for debugging*/
|
|
KEYWORD do 20;
|
|
KEYWORD asm 21;
|
|
KEYWORD goto 22;
|
|
KEYWORD exe 23;
|
|
KEYWORD break 24;
|
|
KEYWORD continue 25;
|
|
KEYWORD switch 26;
|
|
KEYWORD case 27;
|
|
KEYWORD default 28;
|
|
KEYWORD public 29;
|
|
KEYWORD offset 30;
|
|
KEYWORD typeof 31;
|
|
KEYWORD import 32;
|
|
KEYWORD LTimport 33;
|
|
KEYWORD coutln 34;
|
|
KEYWORD dbgoln 34;
|
|
|
|
KEYWORD ALIGN 64;
|
|
KEYWORD END 65;
|
|
KEYWORD U1 66;
|
|
KEYWORD U2 67;
|
|
KEYWORD U4 68;
|
|
KEYWORD U8 68; /*ALIAS*/
|
|
KEYWORD DU1 69;
|
|
KEYWORD DU2 70;
|
|
KEYWORD DU4 71;
|
|
KEYWORD DUP 72;
|
|
KEYWORD ORG 73;
|
|
KEYWORD STRUC 74;
|
|
KEYWORD ENDS 75;
|
|
KEYWORD USE16 76;
|
|
KEYWORD USE32 77;
|
|
KEYWORD IMPORT 78;
|
|
KEYWORD EXPORT 79;
|
|
KEYWORD INSERT 80;
|
|
KEYWORD LIST 81;
|
|
KEYWORD NOLIST 82;
|
|
KEYWORD INSERT_COMPRESSED 83;
|
|
KEYWORD DU8 84;
|
|
|
|
OPCODE PUSH
|
|
0x0E NO CS
|
|
0x16 NO SS
|
|
0x1E NO DS
|
|
0x06 NO ES
|
|
0x0F 0xA0 NO FS
|
|
0x0F 0xA8 NO GS
|
|
0x6A &IB IMM8
|
|
0x68 *!IW IMM16
|
|
0x68 %!ID IMM32
|
|
0x50 +/R *NO R16
|
|
0x50 +/R %NO R32
|
|
0xFF /6 *NO RM16
|
|
0xFF /6 %NO RM32;
|
|
OPCODE PUSHA 0x60 NO;
|
|
OPCODE PUSHAW 0x60 *NO;
|
|
OPCODE PUSHAD 0x60 %NO;
|
|
OPCODE PUSHF 0x9C NO;
|
|
OPCODE PUSHFW 0x9C *NO;
|
|
OPCODE PUSHFD 0x9C %NO;
|
|
OPCODE POP
|
|
0x1F NO DS
|
|
0x07 NO ES
|
|
0x17 NO SS
|
|
0x0F 0xA1 NO FS
|
|
0x0F 0xA9 NO GS
|
|
0x58 +*RW R16
|
|
0x58 +%RD R32
|
|
0x8F /0 *NO RM16
|
|
0x8F /0 %NO RM32;
|
|
OPCODE POPA 0x61 NO;
|
|
OPCODE POPAW 0x61 *NO;
|
|
OPCODE POPAD 0x61 %NO;
|
|
OPCODE POPF 0x9D NO;
|
|
OPCODE POPFW 0x9D *NO;
|
|
OPCODE POPFD 0x9D %NO;
|
|
OPCODE MOV
|
|
// 0xA0 NO AL MOFFS8
|
|
0xA1 *NO AX MOFFS16
|
|
0xA1 %NO EAX MOFFS32
|
|
// 0xA2 NO MOFFS8 AL
|
|
0xA3 *NO MOFFS16 AX
|
|
0xA3 %NO MOFFS32 EAX
|
|
0x8A /R NO R8 RM8
|
|
0x8B /R *NO R16 RM16
|
|
0x8B /R %NO R32 RM32
|
|
0x88 /R NO RM8 R8
|
|
0x89 /R *NO RM16 R16
|
|
0x89 /R %NO RM32 R32
|
|
0x8C /R %NO RM16 SREG
|
|
0x8E /R %NO SREG RM16
|
|
0xB0 +RB R8 UIMM8
|
|
0xB8 +*RW R16 UIMM16
|
|
0xB8 +%RD R32 UIMM32
|
|
0xC6 NO RM8 UIMM8
|
|
0xC7 *NO RM16 UIMM16
|
|
0xC7 %NO RM32 UIMM32;
|
|
|
|
OPCODE ADC
|
|
0x14 IB AL UIMM8
|
|
0x15 *IW AX UIMM16
|
|
0x15 %ID EAX UIMM32
|
|
0x80 /2 IB RM8 UIMM8
|
|
0x83 /2 *IB RM16 IMM8
|
|
0x83 /2 %IB RM32 IMM8
|
|
0x81 /2 *IW RM16 UIMM16
|
|
0x81 /2 %ID RM32 UIMM32
|
|
0x12 /R NO R8 RM8
|
|
0x13 /R *NO R16 RM16
|
|
0x13 /R %NO R32 RM32
|
|
0x10 /R NO RM8 R8
|
|
0x11 /R *NO RM16 R16
|
|
0x11 /R %NO RM32 R32;
|
|
OPCODE ADD
|
|
0x04 IB AL UIMM8
|
|
0x05 *IW AX UIMM16
|
|
0x05 %ID EAX UIMM32
|
|
0x80 /0 IB RM8 UIMM8
|
|
0x83 /0 *IB RM16 IMM8
|
|
0x83 /0 %IB RM32 IMM8
|
|
0x81 /0 *IW RM16 UIMM16
|
|
0x81 /0 %ID RM32 UIMM32
|
|
0x02 /R NO R8 RM8
|
|
0x03 /R *NO R16 RM16
|
|
0x03 /R %NO R32 RM32
|
|
0x00 /R NO RM8 R8
|
|
0x01 /R *NO RM16 R16
|
|
0x01 /R %NO RM32 R32;
|
|
OPCODE AND
|
|
0x24 IB AL UIMM8
|
|
0x25 *IW AX UIMM16
|
|
0x25 %ID EAX UIMM32
|
|
0x80 /4 IB RM8 UIMM8
|
|
0x83 /4 *IB RM16 IMM8
|
|
0x83 /4 %IB RM32 IMM8
|
|
0x81 /4 *IW RM16 UIMM16
|
|
0x81 /4 %ID RM32 UIMM32
|
|
0x22 /R NO R8 RM8
|
|
0x23 /R *NO R16 RM16
|
|
0x23 /R %NO R32 RM32
|
|
0x20 /R NO RM8 R8
|
|
0x21 /R *NO RM16 R16
|
|
0x21 /R %NO RM32 R32;
|
|
OPCODE CMP
|
|
0x3C IB AL UIMM8
|
|
0x3D *IW AX UIMM16
|
|
0x3D %ID EAX UIMM32
|
|
0x80 /7 IB RM8 UIMM8
|
|
0x83 /7 *IB RM16 IMM8
|
|
0X83 /7 %IB RM32 IMM8
|
|
0x81 /7 *IW RM16 UIMM16
|
|
0x81 /7 %ID RM32 UIMM32
|
|
0x3A /R NO R8 RM8
|
|
0x3B /R *NO R16 RM16 //ERROR?
|
|
0x3B /R %NO R32 RM32
|
|
0x38 /R NO RM8 R8
|
|
0x39 /R *NO RM16 R16
|
|
0x39 /R %NO RM32 R32;
|
|
OPCODE OR
|
|
0x0C IB AL UIMM8
|
|
0x0D *IW AX UIMM16
|
|
0x0D %ID EAX UIMM32
|
|
0x80 /1 IB RM8 UIMM8
|
|
0x83 /1 *IB RM16 IMM8
|
|
0x83 /1 %IB RM32 IMM8
|
|
0x81 /1 *IW RM16 UIMM16
|
|
0x81 /1 %ID RM32 UIMM32
|
|
0x0A /R NO R8 RM8
|
|
0x0B /R *NO R16 RM16
|
|
0x0B /R %NO R32 RM32
|
|
0x08 /R NO RM8 R8
|
|
0x09 /R *NO RM16 R16
|
|
0x09 /R %NO RM32 R32;
|
|
OPCODE SBB
|
|
0x1C IB AL UIMM8
|
|
0x1D *IW AX UIMM16
|
|
0x1D %ID EAX UIMM32
|
|
0x80 /3 IB RM8 UIMM8
|
|
0x83 /3 *IB RM16 IMM8
|
|
0x83 /3 %IB RM32 IMM8
|
|
0x81 /3 *IW RM16 UIMM16
|
|
0x81 /3 %ID RM32 UIMM32
|
|
0x1A /R NO R8 RM8
|
|
0x1B /R *NO R16 RM16
|
|
0x1B /R %NO R32 RM32
|
|
0x18 /R NO RM8 R8
|
|
0x19 /R *NO RM16 R16
|
|
0x19 /R %NO RM32 R32;
|
|
OPCODE SUB
|
|
0x2C IB AL UIMM8
|
|
0x2D *IW AX UIMM16
|
|
0x2D %ID EAX UIMM32
|
|
0x80 /5 IB RM8 UIMM8
|
|
0x83 /5 *IB RM16 IMM8
|
|
0x83 /5 %IB RM32 IMM8
|
|
0x81 /5 *IW RM16 UIMM16
|
|
0x81 /5 %ID RM32 UIMM32
|
|
0x2A /R NO R8 RM8
|
|
0x2B /R *NO R16 RM16
|
|
0x2B /R %NO R32 RM32
|
|
0x28 /R NO RM8 R8
|
|
0x29 /R *NO RM16 R16
|
|
0x29 /R %NO RM32 R32;
|
|
OPCODE TEST
|
|
0xA8 IB AL UIMM8
|
|
0xA9 *IW AX UIMM16
|
|
0xA9 %ID EAX UIMM32
|
|
0xF6 /0 IB RM8 UIMM8
|
|
0xF7 /0 *IW RM16 UIMM16
|
|
0xF7 /0 %ID RM32 UIMM32
|
|
0x84 /R NO RM8 R8
|
|
0x85 /R *NO RM16 R16
|
|
0x85 /R %NO RM32 R32;
|
|
OPCODE NOP 0x90 NO;
|
|
OPCODE XCHG
|
|
0x90 +/R *NO R16 AX
|
|
0x90 +/R *NO AX R16
|
|
0x90 +/R %NO R32 EAX
|
|
0x90 +/R %NO EAX R32
|
|
0x86 /R NO R8 RM8
|
|
0x87 /R *NO R16 RM16
|
|
0x87 /R %NO R32 RM32
|
|
0x86 /R NO RM8 R8
|
|
0x87 /R *NO RM16 R16
|
|
0x87 /R %NO RM32 R32;
|
|
OPCODE XOR
|
|
0x34 IB AL UIMM8
|
|
0x35 *IW AX UIMM16
|
|
0x35 %ID EAX UIMM32
|
|
0x80 /6 IB RM8 UIMM8
|
|
0x83 /6 *IB RM16 IMM8
|
|
0x83 /6 %IB RM32 IMM8
|
|
0x81 /6 *IW RM16 UIMM16
|
|
0x81 /6 %ID RM32 UIMM32
|
|
0x32 /R NO R8 RM8
|
|
0x33 /R *NO R16 RM16
|
|
0x33 /R %NO R32 RM32
|
|
0x30 /R NO RM8 R8
|
|
0x31 /R *NO RM16 R16
|
|
0x31 /R %NO RM32 R32;
|
|
|
|
OPCODE CALL
|
|
0xE8 *!&CW REL16
|
|
0xFF /2 *!NO RM16
|
|
0xE8 %!&CD REL32
|
|
0xFF /2 %!NO RM32
|
|
// 0x9A CD PTR1616
|
|
// 0xFF /3 *NO M1616
|
|
// 0x9A *CP PTR1632
|
|
// 0x9A %CP PTR3232
|
|
// 0xFF /3 %NO M1632
|
|
;
|
|
|
|
OPCODE JMP
|
|
0xEB &CB REL8
|
|
0xE9 *!CW REL16
|
|
0xE9 %!CD REL32
|
|
0xFF /4 *!NO RM16
|
|
0xFF /4 %!NO RM32;
|
|
OPCODE JA
|
|
0x77 &CB REL8
|
|
0x0F 0x87 *!CW REL16
|
|
0x0F 0x87 %!CD REL32;
|
|
OPCODE JAE
|
|
0x73 &CB REL8
|
|
0x0F 0x83 *!CW REL16
|
|
0x0F 0x83 %!CD REL32;
|
|
OPCODE JB
|
|
0x72 &CB REL8
|
|
0x0F 0x82 *!CW REL16
|
|
0x0F 0x82 %!CD REL32;
|
|
OPCODE JBE
|
|
0x76 &CB REL8
|
|
0x0F 0x86 *!CW REL16
|
|
0x0F 0x86 %!CD REL32;
|
|
OPCODE JC
|
|
0x72 &CB REL8
|
|
0x0F 0x82 *!CW REL16
|
|
0x0F 0x82 %!CD REL32;
|
|
OPCODE JCXZ
|
|
0xE3 CB REL8;
|
|
OPCODE JECXZ
|
|
0xE3 CB REL8;
|
|
OPCODE JE
|
|
0x74 &CB REL8
|
|
0x0F 0x84 *!CW REL16
|
|
0x0F 0x84 %!CD REL32;
|
|
OPCODE JZ
|
|
0x74 &CB REL8
|
|
0x0F 0x84 *!CW REL16
|
|
0x0F 0x84 %!CD REL32;
|
|
OPCODE JG
|
|
0x7F &CB REL8
|
|
0x0F 0x8F *!CW REL16
|
|
0x0F 0x8F %!CD REL32;
|
|
OPCODE JGE
|
|
0x7D &CB REL8
|
|
0x0F 0x8D *!CW REL16
|
|
0x0F 0x8D %!CD REL32;
|
|
OPCODE JL
|
|
0x7C &CB REL8
|
|
0x0F 0x8C *!CW REL16
|
|
0x0F 0x8C %!CD REL32;
|
|
OPCODE JLE
|
|
0x7E &CB REL8
|
|
0x0F 0x8E *!CW REL16
|
|
0x0F 0x8E %!CD REL32;
|
|
OPCODE JNA
|
|
0x76 &CB REL8
|
|
0x0F 0x86 *!CW REL16
|
|
0x0F 0x86 %!CD REL32;
|
|
OPCODE JNAE
|
|
0x72 &CB REL8
|
|
0x0F 0x82 *!CW REL16
|
|
0x0F 0x82 %!CD REL32;
|
|
OPCODE JNB
|
|
0x73 &CB REL8
|
|
0x0F 0x83 *!CW REL16
|
|
0x0F 0x83 %!CD REL32;
|
|
OPCODE JNBE
|
|
0x77 &CB REL8
|
|
0x0F 0x87 *!CW REL16
|
|
0x0F 0x87 %!CD REL32;
|
|
OPCODE JNC
|
|
0x73 &CB REL8
|
|
0x0F 0x83 *!CW REL16
|
|
0x0F 0x83 %!CD REL32;
|
|
OPCODE JNE
|
|
0x75 &CB REL8
|
|
0x0F 0x85 *!CW REL16
|
|
0x0F 0x85 %!CD REL32;
|
|
OPCODE JNG
|
|
0x7E &CB REL8
|
|
0x0F 0x8E *!CW REL16
|
|
0x0F 0x8E %!CD REL32;
|
|
OPCODE JNGE
|
|
0x7C &CB REL8
|
|
0x0F 0x8C *!CW REL16
|
|
0x0F 0x8C %!CD REL32;
|
|
OPCODE JNL
|
|
0x7D &CB REL8
|
|
0x0F 0x8D *!CW REL16
|
|
0x0F 0x8D %!CD REL32;
|
|
OPCODE JNLE
|
|
0x7F &CB REL8
|
|
0x0F 0x8F *!CW REL16
|
|
0x0F 0x8F %!CD REL32;
|
|
OPCODE JNO
|
|
0x71 &CB REL8
|
|
0x0F 0x81 *!CW REL16
|
|
0x0F 0x81 %!CD REL32;
|
|
OPCODE JNP
|
|
0x7B &CB REL8
|
|
0x0F 0x8B *!CW REL16
|
|
0x0F 0x8B %!CD REL32;
|
|
OPCODE JNS
|
|
0x79 &CB REL8
|
|
0x0F 0x89 *!CW REL16
|
|
0x0F 0x89 %!CD REL32;
|
|
OPCODE JNZ
|
|
0x75 &CB REL8
|
|
0x0F 0x85 *!CW REL16
|
|
0x0F 0x85 %!CD REL32;
|
|
OPCODE JO
|
|
0x70 &CB REL8
|
|
0x0F 0x80 *!CW REL16
|
|
0x0F 0x80 %!CD REL32;
|
|
OPCODE JP
|
|
0x7A &CB REL8
|
|
0x0F 0x8A *!CW REL16
|
|
0x0F 0x8A %!CD REL32;
|
|
OPCODE JPE
|
|
0x7A &CB REL8
|
|
0x0F 0x8A *!CW REL16
|
|
0x0F 0x8A %!CD REL32;
|
|
OPCODE JPO
|
|
0x7B &CB REL8
|
|
0x0F 0x8B *!CW REL16
|
|
0x0F 0x8B %!CD REL32;
|
|
OPCODE JS
|
|
0x78 &CB REL8
|
|
0x0F 0x88 *!CW REL16
|
|
0x0F 0x88 %!CD REL32;
|
|
OPCODE JZ
|
|
0x74 &CB REL8
|
|
0x0F 0x84 *!CW REL16
|
|
0x0F 0x84 %!CD REL32;
|
|
|
|
|
|
OPCODE INC
|
|
0x40 +*RW R16
|
|
0x40 +%RD R32
|
|
0xFE /0 NO RM8
|
|
0xFF /0 *NO RM16
|
|
0xFF /0 %NO RM32;
|
|
OPCODE DEC
|
|
0x48 +*RW R16
|
|
0x48 +%RD R32
|
|
0xFE /1 NO RM8
|
|
0xFF /1 *NO RM16
|
|
0xFF /1 %NO RM32;
|
|
OPCODE NOT
|
|
0xF6 /2 NO RM8
|
|
0xF7 /2 *NO RM16
|
|
0xF7 /2 %NO RM32;
|
|
OPCODE NEG
|
|
0xF6 /3 NO RM8
|
|
0xF7 /3 *NO RM16
|
|
0xF7 /3 %NO RM32;
|
|
OPCODE MUL
|
|
0xF6 /4 NO RM8
|
|
0xF7 /4 *NO RM16
|
|
0xF7 /4 %NO RM32;
|
|
OPCODE IMUL
|
|
0xF6 /5 NO RM8
|
|
0xF7 /5 *NO RM16
|
|
0xF7 /5 %NO RM32;
|
|
OPCODE IMUL2
|
|
0x0F 0xAF /R *NO R16 RM16
|
|
0x0F 0xAF /R *NO R32 RM32
|
|
0x6B /R *IB RM16 IMM8
|
|
0x6B /R %IB RM32 IMM8
|
|
0x69 /R *IW RM16 UIMM16
|
|
0x69 /R %ID RM32 UIMM32;
|
|
OPCODE DIV
|
|
0xF6 /6 NO RM8
|
|
0xF7 /6 *NO RM16
|
|
0xF7 /6 %NO RM32;
|
|
OPCODE IDIV
|
|
0xF6 /7 NO RM8
|
|
0xF7 /7 *NO RM16
|
|
0xF7 /7 %NO RM32;
|
|
|
|
OPCODE AAA 0x37 NO;
|
|
OPCODE AAD 0xD5 0x0A NO;
|
|
OPCODE AAM 0xD4 0x0A NO;
|
|
OPCODE AAS 0x3F NO;
|
|
OPCODE ARPL 0x63 /R NO RM16 R16;
|
|
OPCODE BOUND
|
|
0x62 /R *NO RM16 R16
|
|
0x62 /R %NO RM32 R32;
|
|
OPCODE BSF
|
|
0x0F 0xBC /R *NO R16 RM16
|
|
0x0F 0xBC /R %NO R32 RM32;
|
|
OPCODE BSR
|
|
0x0F 0xBD /R *NO R16 RM16
|
|
0x0F 0xBD /R %NO R32 RM32;
|
|
OPCODE BSWAP
|
|
0x0F 0xC8 /R %NO R32;
|
|
OPCODE BT
|
|
0x0F 0xA3 /R *NO RM16 R16
|
|
0x0F 0xA3 /R %NO RM32 R32
|
|
0x0F 0xBA /4 *IB RM16 UIMM8
|
|
0x0F 0xBA /4 %IB RM32 UIMM8;
|
|
OPCODE BTC
|
|
0x0F 0xBB /R *NO RM16 R16
|
|
0x0F 0xBB /R %NO RM32 R32
|
|
0x0F 0xBA /7 *IB RM16 UIMM8
|
|
0x0F 0xBA /7 %IB RM32 UIMM8;
|
|
OPCODE BTR
|
|
0x0F 0xB3 /R *NO RM16 R16
|
|
0x0F 0xB3 /R %NO RM32 R32
|
|
0x0F 0xBA /6 *IB RM16 UIMM8
|
|
0x0F 0xBA /6 %IB RM32 UIMM8;
|
|
OPCODE BTS
|
|
0x0F 0xAB /R *NO RM16 R16
|
|
0x0F 0xAB /R %NO RM32 R32
|
|
0x0F 0xBA /5 *IB RM16 UIMM8
|
|
0x0F 0xBA /5 %IB RM32 UIMM8;
|
|
OPCODE CBW 0x98 NO;
|
|
OPCODE CDQ 0x99 NO;
|
|
OPCODE CLC 0xF8 NO;
|
|
OPCODE CLD 0xFC NO;
|
|
OPCODE CLI 0xFA NO;
|
|
OPCODE CLTS 0x0F 0x06 NO;
|
|
OPCODE CMC 0xF5 NO;
|
|
OPCODE CMPSB 0xA6 NO;
|
|
OPCODE CMPSW 0xA7 *NO;
|
|
OPCODE CMPSD 0xA7 %NO;
|
|
OPCODE CMPXCHG
|
|
0x0F 0xB0 /R NO RM8 R8
|
|
0x0F 0xB1 /R *NO RM16 R16
|
|
0x0F 0xB1 /R %NO RM32 R32;
|
|
//OPCODE CHPXCHG8B 0x0F 0xC7 NO RM64
|
|
OPCODE CPUID 0x0F 0xA2 NP;
|
|
OPCODE CWD 0x99 NO;
|
|
OPCODE CWDE 0x98 NO;
|
|
OPCODE DAA 0x27 NO;
|
|
OPCODE DAS 0x2F NO;
|
|
//OPCODE ENTER 0xC8 IW IB IMM16 IMM8;
|
|
OPCODE HLT 0xF4 NO;
|
|
OPCODE IN
|
|
0xE4 IB AL UIMM8
|
|
0xE5 *IB AX UIMM8
|
|
0xE5 %IB EAX UIMM8
|
|
0xEC NO AL DX
|
|
0xED *NO AX DX
|
|
0xED %NO EAX DX;
|
|
OPCODE INS
|
|
0x6C NO RM8 DX
|
|
0x6D *NO RM16 DX
|
|
0x6D %NO RM32 DX;
|
|
OPCODE INSB 0x6C NO;
|
|
OPCODE INSW 0x6D *NO;
|
|
OPCODE INSD 0x6D %NO;
|
|
OPCODE INTO 0xCE NO;
|
|
OPCODE INT3 0xCC NO;
|
|
OPCODE INT 0xCD IB IMM8;
|
|
OPCODE INVD 0x0F 0x08 NO;
|
|
//OPCODE INVLPG 0x0F 0x07 /7 M;
|
|
OPCODE IRET 0xCF NO;
|
|
OPCODE LAHF 0x9F NO;
|
|
OPCODE LAR
|
|
0x0F 0x02 /R *NO R16 RM16
|
|
0x0F 0x02 /R %NO R32 RM32;
|
|
OPCODE LEA
|
|
0x8D /R *NO R16 RM16
|
|
0x8D /R %NO R32 RM32;
|
|
OPCODE LEAVE 0xC9 NO;
|
|
OPCODE LGDT
|
|
0x0F 0x01 /2 *NO M16
|
|
0x0F 0x01 /2 %NO M32;
|
|
OPCODE LIDT
|
|
0x0F 0x01 /3 *NO M16
|
|
0x0F 0x01 /3 %NO M32;
|
|
//OPCODE LGS LSS LFS LDS LES
|
|
OPCODE LLDT
|
|
0x0F 0x00 /2 *NO RM16
|
|
0x0F 0x00 /2 %NO RM32;
|
|
OPCODE LMSW
|
|
0x0F 0x01 /6 *NO RM16
|
|
0x0F 0x01 /6 %NO RM32;
|
|
OPCODE LOCK 0xF0 NO;
|
|
OPCODE LODSB 0xAC NO;
|
|
OPCODE LODSW 0xAD *NO;
|
|
OPCODE LODSD 0xAD %NO;
|
|
OPCODE LOOP 0xE2 CB REL8;
|
|
OPCODE LOOPE 0xE1 CB REL8;
|
|
OPCODE LOOPZ 0xE1 CB REL8;
|
|
OPCODE LOOPNE 0xE0 CB REL8;
|
|
OPCODE LOOPNZ 0xE0 CB REL8;
|
|
OPCODE LSL
|
|
0x0F 0x03 /R *NO R16 RM16
|
|
0x0F 0x03 /R %NO R32 RM32;
|
|
OPCODE LTR
|
|
0x0F 0x00 /3 *NO RM16
|
|
0x0F 0x00 /3 %NO RM32;
|
|
OPCODE MOVSB 0xA4 NO;
|
|
OPCODE MOVSW 0xA5 *NO;
|
|
OPCODE MOVSD 0xA5 %NO;
|
|
OPCODE MOVSX
|
|
0x0F 0xBE /R *NO R16 RM8
|
|
0x0F 0xBE /R %NO R32 RM8
|
|
0x0F 0xBF /R %NO R32 RM16;
|
|
OPCODE MOVZX
|
|
0x0F 0xB6 /R *NO R16 RM8
|
|
0x0F 0xB6 /R %NO R32 RM8
|
|
0x0F 0xB7 /R %NO R32 RM16;
|
|
OPCODE OUT
|
|
0xE6 IB UIMM8 AL
|
|
0xE7 *IB UIMM8 AX
|
|
0xE7 %IB UIMM8 EAX
|
|
0xEE NO DX AL
|
|
0xEF *NO DX AX
|
|
0xEF %NO DX EAX;
|
|
OPCODE OUTSB 0x6E NO;
|
|
OPCODE OUTSW 0x6F *NO;
|
|
OPCODE OUTSD 0x6F %NO;
|
|
OPCODE RDMSR 0x0F 0x32 NO;
|
|
OPCODE REP_INSB 0xF3 0x6C NO;
|
|
OPCODE REP_INSW 0xF3 0x6D *NO;
|
|
OPCODE REP_INSD 0xF3 0x6D %NO;
|
|
OPCODE REP_MOVSB 0xF3 0xA4 NO;
|
|
OPCODE REP_MOVSW 0xF3 0xA5 *NO;
|
|
OPCODE REP_MOVSD 0xF3 0xA5 %NO;
|
|
OPCODE REP_OUTSB 0xF3 0x6E NO;
|
|
OPCODE REP_OUTSW 0xF3 0x6F *NO;
|
|
OPCODE REP_OUTSD 0xF3 0x6F %NO;
|
|
OPCODE REP_LODSB 0xF2 0xAC NO;
|
|
OPCODE REP_LODSW 0xF2 0xAD *NO;
|
|
OPCODE REP_LODSD 0xF2 0xAD %NO;
|
|
OPCODE REP_STOSB 0xF3 0xAA NO;
|
|
OPCODE REP_STOSW 0xF3 0xAB *NO;
|
|
OPCODE REP_STOSD 0xF3 0xAB %NO;
|
|
OPCODE REPE_CMPSB 0xF3 0xA6 NO;
|
|
OPCODE REPE_CMPSW 0xF3 0xA7 *NO;
|
|
OPCODE REPE_CMPSD 0xF3 0xA7 %NO;
|
|
OPCODE REPE_SCASB 0xF3 0xAE NO;
|
|
OPCODE REPE_SCASW 0xF3 0xAF *NO;
|
|
OPCODE REPE_SCASD 0xF3 0xAF %NO;
|
|
OPCODE REPNE_CMPSB 0xF2 0xA6 NO;
|
|
OPCODE REPNE_CMPSW 0xF2 0xA7 *NO;
|
|
OPCODE REPNE_CMPSD 0xF2 0xA7 %NO;
|
|
OPCODE REPNE_SCASB 0xF2 0xAE NO;
|
|
OPCODE REPNE_SCASW 0xF2 0xAF *NO;
|
|
OPCODE REPNE_SCASD 0xF2 0xAF %NO;
|
|
OPCODE RET 0xC3 NO;
|
|
OPCODE RET2 0xC2 IW UIMM16;
|
|
OPCODE RETF 0xCB NO;
|
|
OPCODE RETF2 0xCA IW UIMM16;
|
|
OPCODE RSM 0x0F 0xAA NO;
|
|
OPCODE SAHF 0x9E NO;
|
|
OPCODE SCASB 0xAE NO;
|
|
OPCODE SCASW 0xAF *NO;
|
|
OPCODE SCASD 0xAF %NO;
|
|
OPCODE SEGCS 0x2E NO;
|
|
OPCODE SEGSS 0x36 NO;
|
|
OPCODE SEGDS 0x3E NO;
|
|
OPCODE SEGES 0x26 NO;
|
|
OPCODE SEGFS 0x64 NO;
|
|
OPCODE SEGGS 0x65 NO;
|
|
OPCODE SETA 0x0F 0x97 NO RM8;
|
|
OPCODE SETAE 0x0F 0x93 NO RM8;
|
|
OPCODE SETB 0x0F 0x92 NO RM8;
|
|
OPCODE SETBE 0x0F 0x96 NO RM8;
|
|
OPCODE SETC 0x0F 0x92 NO RM8;
|
|
OPCODE SETE 0x0F 0x94 NO RM8;
|
|
OPCODE SETG 0x0F 0x9F NO RM8;
|
|
OPCODE SETGE 0x0F 0x9D NO RM8;
|
|
OPCODE SETL 0x0F 0x9C NO RM8;
|
|
OPCODE SETLE 0x0F 0x9E NO RM8;
|
|
OPCODE SETNA 0x0F 0x96 NO RM8;
|
|
OPCODE SETNAE 0x0F 0x92 NO RM8;
|
|
OPCODE SETNB 0x0F 0x93 NO RM8;
|
|
OPCODE SETNBE 0x0F 0x97 NO RM8;
|
|
OPCODE SETNC 0x0F 0x93 NO RM8;
|
|
OPCODE SETNE 0x0F 0x95 NO RM8;
|
|
OPCODE SETNG 0x0F 0x9E NO RM8;
|
|
OPCODE SETNGE 0x0F 0x9C NO RM8;
|
|
OPCODE SETNL 0x0F 0x9D NO RM8;
|
|
OPCODE SETNLE 0x0F 0x9F NO RM8;
|
|
OPCODE SETNO 0x0F 0x91 NO RM8;
|
|
OPCODE SETNP 0x0F 0x9B NO RM8;
|
|
OPCODE SETNS 0x0F 0x99 NO RM8;
|
|
OPCODE SETNZ 0x0F 0x95 NO RM8;
|
|
OPCODE SETO 0x0F 0x90 NO RM8;
|
|
OPCODE SETP 0x0F 0x9A NO RM8;
|
|
OPCODE SETPE 0x0F 0x9A NO RM8;
|
|
OPCODE SETPO 0x0F 0x9B NO RM8;
|
|
OPCODE SETS 0x0F 0x98 NO RM8;
|
|
OPCODE SETZ 0x0F 0x94 NO RM8;
|
|
//OPCODE SGDT 0x0F 0x01 /0 m
|
|
//OPCODE SIDT 0x0F 0x01 /0 m
|
|
OPCODE SHLD
|
|
0x0F 0xA5 /R *NO RM16 R16
|
|
0x0F 0xA5 /R %NO RM32 R32;
|
|
OPCODE SHRD
|
|
0x0F 0xAD /R *NO RM16 R16
|
|
0x0F 0xAD /R %NO RM32 R32;
|
|
OPCODE SLDT
|
|
0x0F 0x00 /0 *NO RM16
|
|
0x0F 0x00 /0 %NO RM32;
|
|
OPCODE SMSW
|
|
0x0F 0x01 /4 *NO RM16
|
|
0x0F 0x01 /4 %NO RM32;
|
|
OPCODE STC 0xF9 NO;
|
|
OPCODE STD 0xFD NO;
|
|
OPCODE STI 0xFB NO;
|
|
OPCODE STOSB 0xAA NO;
|
|
OPCODE STOSW 0xAB *NO;
|
|
OPCODE STOSD 0xAB %NO;
|
|
OPCODE STR
|
|
0x0F 0x00 /1 *NO RM16
|
|
0x0F 0x00 /1 %NO RM32;
|
|
OPCODE VERR
|
|
0x0F 0x00 /4 *NO RM16
|
|
0x0F 0x00 /4 %NO RM32;
|
|
OPCODE VERW
|
|
0x0F 0x00 /5 *NO RM16
|
|
0x0F 0x00 /5 %NO RM32;
|
|
OPCODE WAIT 0x9B NO;
|
|
OPCODE WBINVD 0x0F 0x09 NO;
|
|
OPCODE WRMSR 0x0F 0x30 NO;
|
|
OPCODE XADD
|
|
0x0F 0xC0 /R NO RM8 R8
|
|
0x0F 0xC1 /R *NO RM16 R16
|
|
0x0F 0xC1 /R %NO RM32 R32;
|
|
OPCODE XLATB 0xD7 NO;
|
|
|
|
|
|
OPCODE RCL
|
|
0xD2 /2 NO RM8 CL
|
|
0xD3 /2 *NO RM16 CL
|
|
0xD3 /2 %NO RM32 CL
|
|
0xC0 /2 IB RM8 UIMM8
|
|
0xC1 /2 *IB RM16 UIMM8
|
|
0xC1 /2 %IB RM32 UIMM8;
|
|
OPCODE RCL1
|
|
0xD0 /2 NO RM8
|
|
0xD1 /2 *NO RM16
|
|
0xD1 /2 %NO RM32;
|
|
OPCODE RCR
|
|
0xD2 /3 NO RM8 CL
|
|
0xD3 /3 *NO RM16 CL
|
|
0xD3 /3 %NO RM32 CL
|
|
0xC0 /3 IB RM8 UIMM8
|
|
0xC1 /3 *IB RM16 UIMM8
|
|
0xC1 /3 %IB RM32 UIMM8;
|
|
OPCODE RCR1
|
|
0xD0 /3 NO RM8
|
|
0xD1 /3 *NO RM16
|
|
0xD1 /3 %NO RM32;
|
|
OPCODE ROL
|
|
0xD2 /0 NO RM8 CL
|
|
0xD3 /0 *NO RM16 CL
|
|
0xD3 /0 %NO RM32 CL
|
|
0xC0 /0 IB RM8 UIMM8
|
|
0xC1 /0 *IB RM16 UIMM8
|
|
0xC1 /0 %IB RM32 UIMM8;
|
|
OPCODE ROL1
|
|
0xD0 /0 NO RM8
|
|
0xD1 /0 *NO RM16
|
|
0xD1 /0 %NO RM32;
|
|
OPCODE ROR
|
|
0xD2 /1 NO RM8 CL
|
|
0xD3 /1 *NO RM16 CL
|
|
0xD3 /1 %NO RM32 CL
|
|
0xC0 /1 IB RM8 UIMM8
|
|
0xC1 /1 *IB RM16 UIMM8
|
|
0xC1 /1 %IB RM32 UIMM8;
|
|
OPCODE ROR1
|
|
0xD0 /1 NO RM8
|
|
0xD1 /1 *NO RM16
|
|
0xD1 /1 %NO RM32;
|
|
|
|
OPCODE SAL
|
|
0xD2 /4 NO RM8 CL
|
|
0xD3 /4 *NO RM16 CL
|
|
0xD3 /4 %NO RM32 CL
|
|
0xC0 /4 IB RM8 UIMM8
|
|
0xC1 /4 *IB RM16 UIMM8
|
|
0xC1 /4 %IB RM32 UIMM8;
|
|
OPCODE SAL1
|
|
0xD0 /4 NO RM8
|
|
0xD1 /4 *NO RM16
|
|
0xD1 /4 %NO RM32;
|
|
|
|
OPCODE SAR
|
|
0xD2 /7 NO RM8 CL
|
|
0xD3 /7 *NO RM16 CL
|
|
0xD3 /7 %NO RM32 CL
|
|
0xC0 /7 IB RM8 UIMM8
|
|
0xC1 /7 *IB RM16 UIMM8
|
|
0xC1 /7 %IB RM32 UIMM8;
|
|
OPCODE SAR1
|
|
0xD0 /7 NO RM8
|
|
0xD1 /7 *NO RM16
|
|
0xD1 /7 %NO RM32;
|
|
|
|
OPCODE SHL
|
|
0xD2 /4 NO RM8 CL
|
|
0xD3 /4 *NO RM16 CL
|
|
0xD3 /4 %NO RM32 CL
|
|
0xC0 /4 IB RM8 UIMM8
|
|
0xC1 /4 *IB RM16 UIMM8
|
|
0xC1 /4 %IB RM32 UIMM8;
|
|
OPCODE SHL1
|
|
0xD0 /4 NO RM8
|
|
0xD1 /4 *NO RM16
|
|
0xD1 /4 %NO RM32;
|
|
|
|
OPCODE SHR
|
|
0xD2 /5 NO RM8 CL
|
|
0xD3 /5 *NO RM16 CL
|
|
0xD3 /5 %NO RM32 CL
|
|
0xC0 /5 IB RM8 UIMM8
|
|
0xC1 /5 *IB RM16 UIMM8
|
|
0xC1 /5 %IB RM32 UIMM8;
|
|
OPCODE SHR1
|
|
0xD0 /5 NO RM8
|
|
0xD1 /5 *NO RM16
|
|
0xD1 /5 %NO RM32;
|
|
|
|
OPCODE FILD
|
|
0xDF /5 NO RM32; //Load 64 bit I4
|
|
OPCODE FISTP
|
|
0xDF /7 NO RM32; //Store 64 bit I4
|
|
OPCODE FLD
|
|
0xDD /0 NO RM32; //Load 64 bit double
|
|
OPCODE FSTP
|
|
0xDD /3 NO RM32; //Store 64 bit double
|
|
OPCODE FST
|
|
0xDD /2 NO RM32; //Store 64 bit double
|
|
OPCODE FRSTOR
|
|
0xDD /4 NO RM32;
|
|
OPCODE FSAVE
|
|
0x9B 0xDD /6 NO RM32;
|
|
|
|
OPCODE FYL2X 0xD9 0xF1 NO;
|
|
OPCODE FYL2XP1 0xD9 0xF9 NO;
|
|
OPCODE F2XM1 0xD9 0xF0 NO;
|
|
OPCODE FABS 0xD9 0xE1 NO;
|
|
OPCODE FCHS 0xD9 0xE0 NO;
|
|
OPCODE FSIN 0xD9 0xFE NO;
|
|
OPCODE FCOS 0xD9 0xFF NO;
|
|
OPCODE FPTAN 0xD9 0xF2 NO;
|
|
OPCODE FPATAN 0xD9 0xF3 NO;
|
|
OPCODE FSQRT 0xD9 0xFA NO;
|
|
OPCODE FMULP 0xDE 0xC9 NO;
|
|
OPCODE FDIVP 0xDE 0xF9 NO;
|
|
OPCODE FDIVRP 0xDE 0xF1 NO;
|
|
OPCODE FPREM 0xD9 0xF8 NO;
|
|
OPCODE FADDP 0xDE 0xC1 NO;
|
|
OPCODE FSUBP 0xDE 0xE9 NO;
|
|
OPCODE FSUBRP 0xDE 0xE1 NO;
|
|
OPCODE FCOMIP 0xDF 0xF1 NO;
|
|
OPCODE FCLEX 0x9B 0xDB 0xE2 NO;
|
|
OPCODE FSTSW 0x98 0xDF 0xE0 NO;
|
|
OPCODE FDECSTP 0xD9 0xF6 NO;
|
|
OPCODE FINCSTP 0xD9 0xF7 NO;
|
|
OPCODE FFREE 0xDD 0xC0 NO;
|
|
OPCODE FRNDINT 0xD9 0xFC NO;
|
|
OPCODE FSCALE 0xD9 0xFD NO;
|
|
OPCODE FXTRACT 0xD9 0xF4 NO;
|
|
OPCODE FLD1 0xD9 0xE8 NO;
|
|
OPCODE FLDL2T 0xD9 0xE9 NO;
|
|
OPCODE FLDL2E 0xD9 0xEA NO;
|
|
OPCODE FLDPI 0xD9 0xEB NO;
|
|
OPCODE FLDLG2 0xD9 0xEC NO;
|
|
OPCODE FLDLN2 0xD9 0xED NO;
|
|
OPCODE FLDZ 0xD9 0xEE NO;
|
|
OPCODE FXCH 0xD9 0xC9 NO;
|
|
OPCODE FSTCW 0x9B 0xD9 /7 NO RM32;
|
|
OPCODE FLDCW 0xD9 /5 NO RM32;
|