📄 decode-table.c
字号:
{ 0x5eu, "popL", eSI, NONE, NONE, EMIT(normal), XO, NF }, { 0x5fu, "popL", eDI, NONE, NONE, EMIT(normal), XO, NF }, /* 0x60 */ { 0x60u, "pushaL", NONE, NONE, NONE, EMIT(normal), XO, NF }, { 0x61u, "popaL", NONE, NONE, NONE, EMIT(normal), XO, NF }, { 0x62u, "bound", Gv, Ma, NONE, EMIT(normal), AO, NF }, { 0x63u, "arpl", Ew, Gw, NONE, EMIT(normal), AX, WPF }, { 0x64u, PREFIX("fs") }, { 0x65u, PREFIX("gs") }, { 0x66u, PREFIX("dataN") }, /* Operand size override prefix */ { 0x67u, PREFIX("addrN") }, /* Address size override prefix */ { 0x68u, "pushL", Iv, NONE, NONE, EMIT(normal), XO, NF }, { 0x69u, "imulL", Gv, Ev, Iv, EMIT(normal), AO, WF }, { 0x6au, "push", Ib, NONE, NONE, EMIT(normal), XX, NF }, /* sign extended */ { 0x6bu, "imulL", Gv, Ev, Ib, EMIT(normal), AO, WF }, /* sign extended */ { 0x6cu, "insB", Yb, indirDX, NONE, EMIT(normal), AX, RF }, { 0x6du, "insL", Yv, indirDX, NONE, EMIT(normal), AO, RF }, { 0x6eu, "outsB", indirDX, Xb, NONE, EMIT(normal), AX, RF }, { 0x6fu, "outsL", indirDX, Xv, NONE, EMIT(normal), AO, RF }, /* 0x70 */ { 0x70u, "jo", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x71u, "jno", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x72u, "jb", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x73u, "jae", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x74u, "je", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x75u, "jne", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x76u, "jbe", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x77u, "ja", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, /* 0x78 */ { 0x78u, "js", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x79u, "jns", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x7au, "jp", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x7bu, "jnp", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x7cu, "jl", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x7du, "jge", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x7eu, "jle", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x7fu, "jg", Jb, NONE, NONE, EMIT(jcond), XO | JJ, RF }, /* 0x80 */ { 0x80u, GROUP(group1_Eb_Ib) }, { 0x81u, GROUP(group1_Ev_Iv) }, { 0x82u, GROUP(group1_Eb_Ib) }, { 0x83u, GROUP(group1_Ev_Ib) }, { 0x84u, "testB", Eb, Gb, NONE, EMIT(normal), AX, WF }, { 0x85u, "testL", Ev, Gv, NONE, EMIT(normal), AO, WF }, { 0x86u, "xchgB", Eb, Gb, NONE, EMIT(normal), AX, NF }, { 0x87u, "xchgL", Ev, Gv, NONE, EMIT(normal), AO, NF }, /* 0x88 */ { 0x88u, "movB", Eb, Gb, NONE, EMIT(normal), AX, NF }, { 0x89u, "movL", Ev, Gv, NONE, EMIT(normal), AO, NF }, { 0x8au, "movB", Gb, Eb, NONE, EMIT(normal), AX, NF }, { 0x8bu, "movL", Gv, Ev, NONE, EMIT(normal), AO, NF }, { 0x8cu, "movL", Ew, Sw, NONE, EMIT(normal), AO, NF }, { 0x8du, "lea", Gv, M, NONE, EMIT(normal), AO, NF }, { 0x8eu, "movL", Sw, Ew, NONE, EMIT(normal), AO, NF }, { 0x8fu, "popL", Ev, NONE, NONE, EMIT(normal), AO, NF }, /* 0x90 */ { 0x90u, "nop", NONE, NONE, NONE, EMIT(normal), XO, NF }, { 0x91u, "xchgL", eCX, eAX, NONE, EMIT(normal), XO, NF }, { 0x92u, "xchgL", eDX, eAX, NONE, EMIT(normal), XO, NF }, { 0x93u, "xchgL", eBX, eAX, NONE, EMIT(normal), XO, NF }, { 0x94u, "xchgL", eSP, eAX, NONE, EMIT(normal), XO, NF }, { 0x95u, "xchgL", eBP, eAX, NONE, EMIT(normal), XO, NF }, { 0x96u, "xchgL", eSI, eAX, NONE, EMIT(normal), XO, NF }, { 0x97u, "xchgL", eDI, eAX, NONE, EMIT(normal), XO, NF }, /* 0x98 */ { 0x98u, "cWD", NONE, NONE, NONE, EMIT(normal), XO, NF }, { 0x99u, "cDQ", NONE, NONE, NONE, EMIT(normal), XO, NF }, { 0x9au, "call", Ap, NONE, NONE, EMIT(normal), XO, NF }, { 0x9bu, "wait", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x9cu, "pushf", NONE, NONE, NONE, EMIT(normal), XO, RF }, { 0x9du, "popf", NONE, NONE, NONE, EMIT(normal), XO, WF }, { 0x9eu, "sahf", NONE, NONE, NONE, EMIT(normal), XX, WF }, { 0x9fu, "lahf", NONE, NONE, NONE, EMIT(normal), XX, NF }, /* 0xa0 */ { 0xa0u, "movB", AL, Ob, NONE, EMIT(normal), AX, NF }, { 0xa1u, "movL", eAX, Ov, NONE, EMIT(normal), AO, NF }, { 0xa2u, "movB", Ob, AL, NONE, EMIT(normal), AX, NF }, { 0xa3u, "movL", Ov, eAX, NONE, EMIT(normal), AO, NF }, { 0xa4u, "movsB", Yb, Xb, NONE, EMIT(normal), AX, RF }, { 0xa5u, "movsL", Yv, Xv, NONE, EMIT(normal), AO, RF }, { 0xa6u, "cmpsB", Xb, Yb, NONE, EMIT(normal), AX, WF }, { 0xa7u, "cmpsL", Xv, Yv, NONE, EMIT(normal), AO, WF }, /* 0xa8 */ { 0xa8u, "testB", AL, Ib, NONE, EMIT(normal), XX, WF }, { 0xa9u, "testL", eAX, Iv, NONE, EMIT(normal), XO, WF }, { 0xaau, "stosB", Yb, AL, NONE, EMIT(normal), AX, RF }, { 0xabu, "stosL", Yv, eAX, NONE, EMIT(normal), AO, RF }, { 0xacu, "lodsB", AL, Xb, NONE, EMIT(normal), AX, NF }, { 0xadu, "lodsL", eAX, Xv, NONE, EMIT(normal), AO, NF }, { 0xaeu, "scasB", AL, Yb, NONE, EMIT(normal), AX, RWF }, { 0xafu, "scasL", eAX, Yv, NONE, EMIT(normal), AO, RWF }, /* 0xb0 */ { 0xb0u, "movB", AL, Ib, NONE, EMIT(normal), XX, NF }, { 0xb1u, "movB", CL, Ib, NONE, EMIT(normal), XX, NF }, { 0xb2u, "movB", DL, Ib, NONE, EMIT(normal), XX, NF }, { 0xb3u, "movB", BL, Ib, NONE, EMIT(normal), XX, NF }, { 0xb4u, "movB", AH, Ib, NONE, EMIT(normal), XX, NF }, { 0xb5u, "movB", CH, Ib, NONE, EMIT(normal), XX, NF }, { 0xb6u, "movB", DH, Ib, NONE, EMIT(normal), XX, NF }, { 0xb7u, "movB", BH, Ib, NONE, EMIT(normal), XX, NF }, /* 0xb8 */ { 0xb8u, "movL", eAX, Iv, NONE, EMIT(normal), XO, NF }, { 0xb9u, "movL", eCX, Iv, NONE, EMIT(normal), XO, NF }, { 0xbau, "movL", eDX, Iv, NONE, EMIT(normal), XO, NF }, { 0xbbu, "movL", eBX, Iv, NONE, EMIT(normal), XO, NF }, { 0xbcu, "movL", eSP, Iv, NONE, EMIT(normal), XO, NF }, { 0xbdu, "movL", eBP, Iv, NONE, EMIT(normal), XO, NF }, { 0xbeu, "movL", eSI, Iv, NONE, EMIT(normal), XO, NF }, { 0xbfu, "movL", eDI, Iv, NONE, EMIT(normal), XO, NF }, /* 0xc0 */ { 0xc0u, GROUP(group2a_Eb_Ib) }, { 0xc1u, GROUP(group2a_Ev_Ib) }, { 0xc2u, "retL", Iw, NONE, NONE, EMIT(ret_Iw), XO | JJ, NF }, { 0xc3u, "retL", NONE, NONE, NONE, EMIT(ret), XO | JJ, NF }, { 0xc4u, "les", Gv, Mp, NONE, EMIT(normal), AO, NF }, { 0xc5u, "lds", Gv, Mp, NONE, EMIT(normal), AO, NF }, { 0xc6u, "movB", Eb, Ib, NONE, EMIT(normal), AX, NF }, { 0xc7u, "movL", Ev, Iv, NONE, EMIT(normal), AO, NF }, /* 0xc8 */ { 0xc8u, "enter", Iw, Ib, NONE, EMIT(normal), XX, NF }, { 0xc9u, "leaveL", NONE, NONE, NONE, EMIT(normal), XO, NF }, { 0xcau, "lret", Iw, NONE, NONE, EMIT(normal), XO, NF }, /* ret far */ { 0xcbu, "lret", NONE, NONE, NONE, EMIT(normal), XO, NF }, /* ret far */ { 0xccu, "int3", NONE, NONE, NONE, EMIT(normal), XX, RWF }, { 0xcdu, "int", Ib, NONE, NONE, EMIT(int), XX, RWF }, { 0xceu, "into", NONE, NONE, NONE, EMIT(normal), XX, RWF }, { 0xcfu, "iret", NONE, NONE, NONE, EMIT(normal), XO, RWF }, /* 0xd0 */ { 0xd0u, GROUP(group2_Eb_1) }, { 0xd1u, GROUP(group2_Ev_1) }, { 0xd2u, GROUP(group2_Eb_CL) }, { 0xd3u, GROUP(group2_Ev_CL) }, { 0xd4u, "aam", Ib, NONE, NONE, EMIT(normal), XX , WF }, { 0xd5u, "aad", Ib, NONE, NONE, EMIT(normal), XX , WF }, { 0xd6u, RESERVED }, { 0xd7u, "xlat", NONE, NONE, NONE, EMIT(normal), AX, NF }, /* 0xd8 */ { 0xd8u, FLOAT(float_d8) }, /* coprocessor opcodes */ { 0xd9u, FLOAT(float_d9) }, /* coprocessor opcodes */ { 0xdau, FLOAT(float_da) }, /* coprocessor opcodes */ { 0xdbu, FLOAT(float_db) }, /* coprocessor opcodes */ { 0xdcu, FLOAT(float_dc) }, /* coprocessor opcodes */ { 0xddu, FLOAT(float_dd) }, /* coprocessor opcodes */ { 0xdeu, FLOAT(float_de) }, /* coprocessor opcodes */ { 0xdfu, FLOAT(float_df) }, /* coprocessor opcodes */ /* 0xe0 */ { 0xe0u, "loopne", Jb, NONE, NONE, EMIT(other_jcond), AO | JJ, RF }, { 0xe1u, "loope", Jb, NONE, NONE, EMIT(other_jcond), AO | JJ, RF }, { 0xe2u, "loop", Jb, NONE, NONE, EMIT(other_jcond), AO | JJ, NF }, { 0xe3u, "jcxz", Jb, NONE, NONE, EMIT(other_jcond), AO | JJ, NF }, { 0xe4u, "inB", AL, Ib, NONE, EMIT(normal), XX, NF }, { 0xe5u, "inL", eAX, Ib, NONE, EMIT(normal), XO, NF }, { 0xe6u, "outB", Ib, AL, NONE, EMIT(normal), XX, NF }, { 0xe7u, "outL", Ib, eAX, NONE, EMIT(normal), XO, NF }, /* 0xe8 */ { 0xe8u, "callL", Jv, NONE, NONE, EMIT(call_disp), XO | JJ, NF }, { 0xe9u, "jmpL", Jv, NONE, NONE, EMIT(jmp), XO | JJ, NF }, { 0xeau, "ljmp", Ap, NONE, NONE, EMIT(normal), XO, NF }, /* jmp far */ { 0xebu, "jmp", Jb, NONE, NONE, EMIT(jmp), XO | JJ, NF }, { 0xecu, "inB", AL, indirDX, NONE, EMIT(normal), XX, NF }, { 0xedu, "inL", eAX, indirDX, NONE, EMIT(normal), XO, NF }, { 0xeeu, "outB", indirDX, AL, NONE, EMIT(normal), XX, NF }, { 0xefu, "outL", indirDX, eAX, NONE, EMIT(normal), XO, NF }, /* 0xf0 */ { 0xf0u, PREFIX("lock") }, { 0xf1u, RESERVED }, { 0xf2u, PREFIX("repne") }, { 0xf3u, PREFIX("rep") }, { 0xf4u, "hlt", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0xf5u, "cmc", NONE, NONE, NONE, EMIT(normal), XX, RWCF }, { 0xf6u, GROUP(group3b) }, { 0xf7u, GROUP(group3v) }, { 0xf8u, "clc", NONE, NONE, NONE, EMIT(normal), XX, WCF }, { 0xf9u, "stc", NONE, NONE, NONE, EMIT(normal), XX, WF }, { 0xfau, "cli", NONE, NONE, NONE, EMIT(normal), XX, WF }, { 0xfbu, "sti", NONE, NONE, NONE, EMIT(normal), XX, WF }, { 0xfcu, "cld", NONE, NONE, NONE, EMIT(normal), XX, WF }, { 0xfdu, "std", NONE, NONE, NONE, EMIT(normal), XX, WF }, { 0xfeu, GROUP(ngroup4), }, { 0xffu, GROUP(ngroup5), }};constOpCode twoByteOpcodes[256] = { /* 0x00 */ { 0x00u, GROUP(ngroup6) }, { 0x01u, GROUP(ngroup7) }, { 0x02u, "lar", Gv, Ev, NONE, EMIT(normal), AO, WPF }, { 0x03u, "lsl", Gv, Ev, NONE, EMIT(normal), AO, WPF }, { 0x04u, RESERVED }, { 0x05u, RESERVED }, { 0x06u, "clts", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x07u, RESERVED }, /* 0x08 */ { 0x08u, "invd", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x09u, "wbinvd", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x0au, RESERVED }, { 0x0bu, RESERVED }, { 0x0cu, RESERVED }, { 0x0du, RESERVED }, { 0x0eu, RESERVED }, { 0x0fu, RESERVED }, /* 0x10 */ { 0x10u, MMX_SSE_SSE2 }, { 0x11u, MMX_SSE_SSE2 }, { 0x12u, MMX_SSE_SSE2 }, { 0x13u, MMX_SSE_SSE2 }, { 0x14u, MMX_SSE_SSE2 }, { 0x15u, MMX_SSE_SSE2 }, { 0x16u, MMX_SSE_SSE2 }, { 0x17u, MMX_SSE_SSE2 }, /* 0x18 */ { 0x18u, MMX_SSE_SSE2 }, { 0x19u, RESERVED }, { 0x1au, RESERVED }, { 0x1bu, RESERVED }, { 0x1cu, RESERVED }, { 0x1du, RESERVED }, { 0x1eu, RESERVED }, { 0x1fu, RESERVED }, /* 0x20 */ { 0x20u, "mov", Rd, Cd, NONE, EMIT(normal), XX, NDF }, { 0x21u, "mov", Rd, Dd, NONE, EMIT(normal), XX, NDF }, { 0x22u, "mov", Cd, Rd, NONE, EMIT(normal), XX, NDF }, { 0x23u, "mov", Dd, Rd, NONE, EMIT(normal), XX, NDF }, { 0x24u, "mov", Rd, Td, NONE, EMIT(normal), XX, NDF }, { 0x25u, RESERVED }, { 0x26u, "mov", Td, Rd, NONE, EMIT(normal), XX, NDF }, { 0x27u, RESERVED }, /* 0x28 */ { 0x28u, MMX_SSE_SSE2 }, { 0x29u, MMX_SSE_SSE2 }, { 0x2au, MMX_SSE_SSE2 }, { 0x2bu, MMX_SSE_SSE2 }, { 0x2cu, MMX_SSE_SSE2 }, { 0x2du, MMX_SSE_SSE2 }, { 0x2eu, MMX_SSE_SSE2 }, { 0x2fu, MMX_SSE_SSE2 }, /* 0x30 */ { 0x30u, "wrmsr", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x31u, "rdtsc", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x32u, "rdmsr", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x33u, "rdpmc", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x34u, "sysenter", NONE, NONE, NONE, EMIT(sysenter),XX, NF }, { 0x35u, "sysexit", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0x36u, RESERVED }, { 0x37u, RESERVED }, /* 0x38 */ { 0x38u, RESERVED }, { 0x39u, RESERVED }, { 0x3au, RESERVED }, { 0x3bu, RESERVED }, { 0x3cu, "movnti", Gv, Ev, NONE, EMIT(normal), XX }, { 0x3du, RESERVED }, { 0x3eu, RESERVED }, { 0x3fu, RESERVED }, /* 0x40 */ { 0x40u, "cmovo", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x41u, "cmovno", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x42u, "cmovnae", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x43u, "cmovae", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x44u, "cmove", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x45u, "cmovne", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x46u, "cmovbe", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x47u, "cmovnbe", Gv, Ev, NONE, EMIT(normal), AO, RF }, /* 0x48 */ { 0x48u, "cmovs", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x49u, "cmovns", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x4au, "cmovp", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x4bu, "cmovnp", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x4cu, "cmovl", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x4du, "cmovge", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x4eu, "cmovle", Gv, Ev, NONE, EMIT(normal), AO, RF }, { 0x4fu, "cmovg", Gv, Ev, NONE, EMIT(normal), AO, RF }, /* 0x50 */ { 0x50u, MMX_SSE_SSE2 }, { 0x51u, MMX_SSE_SSE2 }, { 0x52u, MMX_SSE_SSE2 }, { 0x53u, MMX_SSE_SSE2 }, { 0x54u, MMX_SSE_SSE2 }, { 0x55u, MMX_SSE_SSE2 }, { 0x56u, MMX_SSE_SSE2 }, { 0x57u, MMX_SSE_SSE2 }, /* 0x58 */ { 0x58u, MMX_SSE_SSE2 }, { 0x59u, MMX_SSE_SSE2 }, { 0x5au, MMX_SSE_SSE2 }, { 0x5bu, MMX_SSE_SSE2 }, { 0x5cu, MMX_SSE_SSE2 }, { 0x5du, MMX_SSE_SSE2 }, { 0x5eu, MMX_SSE_SSE2 }, { 0x5fu, MMX_SSE_SSE2 }, /* 0x60 */ { 0x60u, MMX_SSE_SSE2 }, { 0x61u, MMX_SSE_SSE2 }, { 0x62u, MMX_SSE_SSE2 }, { 0x63u, MMX_SSE_SSE2 }, { 0x64u, MMX_SSE_SSE2 }, { 0x65u, MMX_SSE_SSE2 }, { 0x66u, MMX_SSE_SSE2 }, { 0x67u, MMX_SSE_SSE2 }, /* 0x68 */ { 0x68u, MMX_SSE_SSE2 }, { 0x69u, MMX_SSE_SSE2 }, { 0x6au, MMX_SSE_SSE2 }, { 0x6bu, MMX_SSE_SSE2 }, { 0x6cu, MMX_SSE_SSE2 }, { 0x6du, MMX_SSE_SSE2 }, { 0x6eu, MMX_SSE_SSE2 }, { 0x6fu, MMX_SSE_SSE2 }, /* 0x70 */ { 0x70u, MMX_SSE_SSE2_Ib }, { 0x71u, MMX_SSE_SSE2_Ib }, { 0x72u, MMX_SSE_SSE2_Ib }, { 0x73u, MMX_SSE_SSE2_Ib }, { 0x74u, MMX_SSE_SSE2 }, { 0x75u, MMX_SSE_SSE2 }, { 0x76u, MMX_SSE_SSE2 }, { 0x77u, MMX_SSE_SSE2_None }, /* 0x78 */ { 0x78u, RESERVED }, { 0x79u, RESERVED }, { 0x7au, RESERVED },
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -