📄 decode-table.c
字号:
{ 0x7bu, RESERVED }, { 0x7cu, RESERVED }, { 0x7du, RESERVED }, { 0x7eu, MMX_SSE_SSE2 }, { 0x7fu, MMX_SSE_SSE2 }, /* 0x80 */ { 0x80u, "jo", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x81u, "jno", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x82u, "jb", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x83u, "jae", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x84u, "je", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x85u, "jne", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x86u, "jbe", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x87u, "ja", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, /* 0x88 */ { 0x88u, "js", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x89u, "jns", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x8au, "jp", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x8bu, "jnp", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x8cu, "jl", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x8du, "jge", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x8eu, "jle", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, { 0x8fu, "jg", Jv, NONE, NONE, EMIT(jcond), XO | JJ, RF }, /* 0x90 */ { 0x90u, "setoB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x91u, "setnoB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x92u, "setbB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x93u, "setnbB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x94u, "setzB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x95u, "setnzB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x96u, "setbeB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x97u, "setnbeB", Eb, NONE, NONE, EMIT(normal), AX, RF }, /* 0x98 */ { 0x98u, "setsB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x99u, "setnsB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x9au, "setpB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x9bu, "setnpB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x9cu, "setlB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x9du, "setnlB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x9eu, "setleB", Eb, NONE, NONE, EMIT(normal), AX, RF }, { 0x9fu, "setnleB", Eb, NONE, NONE, EMIT(normal), AX, RF }, /* 0xa0 */ { 0xa0u, "push", FS, NONE, NONE, EMIT(normal), XO, NF }, { 0xa1u, "pop", FS, NONE, NONE, EMIT(normal), XO, NF }, { 0xa2u, "cpuid", NONE, NONE, NONE, EMIT(normal), XX, NF }, { 0xa3u, "btL", Ev, Gv, NONE, EMIT(normal), AO, WF }, { 0xa4u, "shldL", Ev, Gv, Ib, EMIT(normal), AO, WF }, { 0xa5u, "shldL", Ev, Gv, CL, EMIT(normal), AO, WF }, /* Following two opcodes were actually CMPXCHG on the A step Pentium, but it was a mistake */ { 0xa6u, RESERVED }, { 0xa7u, RESERVED }, /* 0xa8 */ { 0xa8u, "push", GS, NONE, NONE, EMIT(normal), XO, NF }, { 0xa9u, "pop", GS, NONE, NONE, EMIT(normal), XO, NF }, { 0xaau, "rsm", NONE, NONE, NONE, EMIT(normal), XX, WF }, { 0xabu, "btsL", Ev, Gv, NONE, EMIT(normal), AO, WF }, { 0xacu, "shrdL", Ev, Gv, Ib, EMIT(normal), AO, WF }, { 0xadu, "shrdL", Ev, Gv, CL, EMIT(normal), AO, WF }, { 0xaeu, MMX_SSE_SSE2 }, { 0xafu, "imulL", Gv, Ev, NONE, EMIT(normal), AO, WF }, /* 0xb0 */ { 0xb0u, "cmpxchgB", Eb, Gb, NONE, EMIT(normal), AX, WPF }, { 0xb1u, "cmpxchgL", Ev, Gv, NONE, EMIT(normal), AO, WF }, { 0xb2u, "lss", Gv, Mp, NONE, EMIT(normal), AO, NF }, { 0xb3u, "btr", Ev, Gv, NONE, EMIT(normal), AO, WF }, { 0xb4u, "lfs", Gv, Mp, NONE, EMIT(normal), AO, NF }, { 0xb5u, "lgs", Gv, Mp, NONE, EMIT(normal), AO, NF }, { 0xb6u, "movzbL", Gv, Eb, NONE, EMIT(normal), AO, NF }, //# { 0xb7u, "movzwL", Gv, Ew, NONE, EMIT(normal), AX, NF }, //# /* 0xb8 */ { 0xb8u, RESERVED }, { 0xb9u, RESERVED }, { 0xbau, GROUP(group8_Ev_Ib) }, { 0xbbu, "btcL", Ev, Gv, NONE, EMIT(normal), AO, WF }, { 0xbcu, "bsfL", Gv, Ev, NONE, EMIT(normal), AO, WF }, { 0xbdu, "bsrL", Gv, Ev, NONE, EMIT(normal), AO, WF }, { 0xbeu, "movsxL", Gv, Eb, NONE, EMIT(normal), AO, NF }, { 0xbfu, "movsxL", Gv, Ew, NONE, EMIT(normal), AX, NF }, /* 0xc0 */ { 0xc0u, "xaddB", Eb, Gb, NONE, EMIT(normal), AX, WF }, { 0xc1u, "xaddL", Ev, Gv, NONE, EMIT(normal), AO, WF }, { 0xc2u, MMX_SSE_SSE2_Ib }, { 0xc3u, MMX_SSE_SSE2 }, { 0xc4u, MMX_SSE_SSE2_Ib }, { 0xc5u, MMX_SSE_SSE2_Ib }, { 0xc6u, MMX_SSE_SSE2_Ib }, { 0xc7u, GROUP(ngroup9) }, /* 0xc8 */ { 0xc8u, "bswap", EAX, NONE, NONE, EMIT(normal), XX, NF }, { 0xc9u, "bswap", ECX, NONE, NONE, EMIT(normal), XX, NF }, { 0xcau, "bswap", EDX, NONE, NONE, EMIT(normal), XX, NF }, { 0xcbu, "bswap", EBX, NONE, NONE, EMIT(normal), XX, NF }, { 0xccu, "bswap", ESP, NONE, NONE, EMIT(normal), XX, NF }, { 0xcdu, "bswap", EBP, NONE, NONE, EMIT(normal), XX, NF }, { 0xceu, "bswap", ESI, NONE, NONE, EMIT(normal), XX, NF }, { 0xcfu, "bswap", EDI, NONE, NONE, EMIT(normal), XX, NF }, /* 0xd0 */ { 0xd0u, RESERVED }, { 0xd1u, MMX_SSE_SSE2 }, { 0xd2u, MMX_SSE_SSE2 }, { 0xd3u, MMX_SSE_SSE2 }, { 0xd4u, MMX_SSE_SSE2 }, { 0xd5u, MMX_SSE_SSE2 }, { 0xd6u, MMX_SSE_SSE2 }, { 0xd7u, MMX_SSE_SSE2 }, /* 0xd8 */ { 0xd8u, MMX_SSE_SSE2 }, { 0xd9u, MMX_SSE_SSE2 }, { 0xdau, MMX_SSE_SSE2 }, { 0xdbu, MMX_SSE_SSE2 }, { 0xdcu, MMX_SSE_SSE2 }, { 0xddu, MMX_SSE_SSE2 }, { 0xdeu, MMX_SSE_SSE2 }, { 0xdfu, MMX_SSE_SSE2 }, /* 0xe0 */ { 0xe0u, MMX_SSE_SSE2 }, { 0xe1u, MMX_SSE_SSE2 }, { 0xe2u, MMX_SSE_SSE2 }, { 0xe3u, MMX_SSE_SSE2 }, { 0xe4u, MMX_SSE_SSE2 }, { 0xe5u, MMX_SSE_SSE2 }, { 0xe6u, MMX_SSE_SSE2 }, { 0xe7u, MMX_SSE_SSE2 }, /* 0xe8 */ { 0xe8u, MMX_SSE_SSE2 }, { 0xe9u, MMX_SSE_SSE2 }, { 0xeau, MMX_SSE_SSE2 }, { 0xebu, MMX_SSE_SSE2 }, { 0xecu, MMX_SSE_SSE2 }, { 0xedu, MMX_SSE_SSE2 }, { 0xeeu, MMX_SSE_SSE2 }, { 0xefu, MMX_SSE_SSE2 }, /* 0xf0 */ { 0xf0u, RESERVED }, { 0xf1u, MMX_SSE_SSE2 }, { 0xf2u, MMX_SSE_SSE2 }, { 0xf3u, MMX_SSE_SSE2 }, { 0xf4u, MMX_SSE_SSE2 }, { 0xf5u, MMX_SSE_SSE2 }, { 0xf6u, MMX_SSE_SSE2 }, { 0xf7u, MMX_SSE_SSE2 }, /* 0xf8 */ { 0xf8u, MMX_SSE_SSE2 }, { 0xf9u, MMX_SSE_SSE2 }, { 0xfau, MMX_SSE_SSE2 }, { 0xfbu, MMX_SSE_SSE2 }, { 0xfcu, MMX_SSE_SSE2 }, { 0xfdu, MMX_SSE_SSE2 }, { 0xfeu, MMX_SSE_SSE2 }, { 0xffu, RESERVED }};constOpCode group1_Eb_Ib[8] = { { 0x00u, "addB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x01u, "orB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x02u, "adcB", Eb, Ib, NONE, EMIT(normal), AX, RWF }, { 0x03u, "sbbB", Eb, Ib, NONE, EMIT(normal), AX, RWF }, { 0x04u, "andB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x05u, "subB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x06u, "xorB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x07u, "cmpB", Eb, Ib, NONE, EMIT(normal), AX, WF }};/* 11 000 011 */constOpCode group1_Ev_Iv[8] = { { 0x00u, "addL", Ev, Iv, NONE, EMIT(normal), AO, WF }, { 0x01u, "orL", Ev, Iv, NONE, EMIT(normal), AO, WF }, { 0x02u, "adcL", Ev, Iv, NONE, EMIT(normal), AO, RWF }, { 0x03u, "sbbL", Ev, Iv, NONE, EMIT(normal), AO, RWF }, { 0x04u, "andL", Ev, Iv, NONE, EMIT(normal), AO, WF }, { 0x05u, "subL", Ev, Iv, NONE, EMIT(normal), AO, WF }, { 0x06u, "xorL", Ev, Iv, NONE, EMIT(normal), AO, WF }, { 0x07u, "cmpL", Ev, Iv, NONE, EMIT(normal), AO, WF }};constOpCode group1_Ev_Ib[8] = { { 0x00u, "addL", Ev, Ib, NONE, EMIT(normal), AO, WF }, { 0x01u, "orL", Ev, Ib, NONE, EMIT(normal), AO, WF }, { 0x02u, "adcL", Ev, Ib, NONE, EMIT(normal), AO, RWF }, { 0x03u, "sbbL", Ev, Ib, NONE, EMIT(normal), AO, RWF }, { 0x04u, "andL", Ev, Ib, NONE, EMIT(normal), AO, WF }, { 0x05u, "subL", Ev, Ib, NONE, EMIT(normal), AO, WF }, { 0x06u, "xorL", Ev, Ib, NONE, EMIT(normal), AO, WF }, { 0x07u, "cmpL", Ev, Ib, NONE, EMIT(normal), AO, WF }};constOpCode group2a_Eb_Ib[8] = { { 0x00u, "rolB", Eb, Ib, NONE, EMIT(normal), AX, WPF }, { 0x01u, "rorB", Eb, Ib, NONE, EMIT(normal), AX, WPF }, { 0x02u, "rclB", Eb, Ib, NONE, EMIT(normal), AX, RWF }, { 0x03u, "rcrB", Eb, Ib, NONE, EMIT(normal), AX, RWF }, { 0x04u, "shlB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x05u, "shrB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x06u, RESERVED }, { 0x07u, "sarB", Eb, Ib, NONE, EMIT(normal), AX, WF }};constOpCode group2a_Ev_Ib[8] = { { 0x00u, "rolL", Ev, Ib, NONE, EMIT(normal), AO, WPF }, { 0x01u, "rorL", Ev, Ib, NONE, EMIT(normal), AO, WPF }, { 0x02u, "rclL", Ev, Ib, NONE, EMIT(normal), AO, RWF }, { 0x03u, "rcrL", Ev, Ib, NONE, EMIT(normal), AO, RWF }, { 0x04u, "shlL", Ev, Ib, NONE, EMIT(normal), AO, WF }, { 0x05u, "shrL", Ev, Ib, NONE, EMIT(normal), AO, WF }, { 0x06u, RESERVED }, { 0x07u, "sarL", Ev, Ib, NONE, EMIT(normal), AO, WF }};constOpCode group2_Eb_1[8] = { { 0x00u, "rolB", Eb, NONE, NONE, EMIT(normal), AX, WPF }, { 0x01u, "rorB", Eb, NONE, NONE, EMIT(normal), AX, WPF }, { 0x02u, "rclB", Eb, NONE, NONE, EMIT(normal), AX, RWF }, { 0x03u, "rcrB", Eb, NONE, NONE, EMIT(normal), AX, RWF }, { 0x04u, "shlB", Eb, NONE, NONE, EMIT(normal), AX, WF }, { 0x05u, "shrB", Eb, NONE, NONE, EMIT(normal), AX, WF }, { 0x06u, RESERVED }, { 0x07u, "sarB", Eb, NONE, NONE, EMIT(normal), AX, WF }};constOpCode group2_Ev_1[8] = { { 0x00u, "rolL", Ev, NONE, NONE, EMIT(normal), AO, WPF }, { 0x01u, "rorL", Ev, NONE, NONE, EMIT(normal), AO, WPF }, { 0x02u, "rclL", Ev, NONE, NONE, EMIT(normal), AO, RWF }, { 0x03u, "rcrL", Ev, NONE, NONE, EMIT(normal), AO, RWF }, { 0x04u, "shlL", Ev, NONE, NONE, EMIT(normal), AO, WF }, { 0x05u, "shrL", Ev, NONE, NONE, EMIT(normal), AO, WF }, { 0x06u, RESERVED }, { 0x07u, "sarL", Ev, NONE, NONE, EMIT(normal), AO, WF }};constOpCode group2_Eb_CL[8] = { { 0x00u, "rolB", Eb, CL, NONE, EMIT(normal), AX, WPF }, { 0x01u, "rorB", Eb, CL, NONE, EMIT(normal), AX, WPF }, { 0x02u, "rclB", Eb, CL, NONE, EMIT(normal), AX, RWF }, { 0x03u, "rcrB", Eb, CL, NONE, EMIT(normal), AX, RWF }, { 0x04u, "shlB", Eb, CL, NONE, EMIT(normal), AX, WF }, { 0x05u, "shrB", Eb, CL, NONE, EMIT(normal), AX, WF }, { 0x06u, RESERVED }, { 0x07u, "sarB", Eb, CL, NONE, EMIT(normal), AX, WF }};constOpCode group2_Ev_CL[8] = { { 0x00u, "rolL", Ev, CL, NONE, EMIT(normal), AO, WPF }, { 0x01u, "rorL", Ev, CL, NONE, EMIT(normal), AO, WPF }, { 0x02u, "rclL", Ev, CL, NONE, EMIT(normal), AO, RWF }, { 0x03u, "rcrL", Ev, CL, NONE, EMIT(normal), AO, RWF }, { 0x04u, "shlL", Ev, CL, NONE, EMIT(normal), AO, WF }, { 0x05u, "shrL", Ev, CL, NONE, EMIT(normal), AO, WF }, { 0x06u, RESERVED }, { 0x07u, "sarL", Ev, CL, NONE, EMIT(normal), AO, WF }};constOpCode group3b[8] = { { 0x00u, "testB", Eb, Ib, NONE, EMIT(normal), AX, WF }, { 0x01u, RESERVED }, { 0x02u, "notB", Eb, NONE, NONE, EMIT(normal), AX, WF }, { 0x03u, "negB", Eb, NONE, NONE, EMIT(normal), AX, WF }, { 0x04u, "mulB", AL, Eb, NONE, EMIT(normal), AX, WF }, { 0x05u, "imulB", AL, Eb, NONE, EMIT(normal), AX, WF }, { 0x06u, "divB", AL, Eb, NONE, EMIT(normal), AX, WF }, { 0x07u, "idivB", AL, Eb, NONE, EMIT(normal), AX, WF }};constOpCode group3v[8] = { { 0x00u, "testL", Ev, Iv, NONE, EMIT(normal), AO, WF }, { 0x01u, RESERVED }, { 0x02u, "notL", Ev, NONE, NONE, EMIT(normal), AO, WF }, { 0x03u, "negL", Ev, NONE, NONE, EMIT(normal), AO, WF }, { 0x04u, "mulL", eAX, Ev, NONE, EMIT(normal), AO, WF }, { 0x05u, "imulL", eAX, Ev, NONE, EMIT(normal), AO, WF }, { 0x06u, "divL", eAX, Ev, NONE, EMIT(normal), AO, WF }, { 0x06u, "idivL", eAX, Ev, NONE, EMIT(normal), AO, WF }};constOpCode ngroup4[8] = { { 0x00u, "incB", Eb, NONE, NONE, EMIT(normal), AX, WAOF }, { 0x01u, "decB", Eb, NONE, NONE, EMIT(normal), AX, WAOF }, { 0x02u, RESERVED }, { 0x03u, RESERVED }, { 0x04u, RESERVED }, { 0x05u, RESERVED }, { 0x06u, RESERVED }, { 0x07u, RESERVED }};constOpCode ngroup5[8] = { { 0x00u, "incL", Ev, NONE, NONE, EMIT(normal), AO, WAOF }, { 0x01u, "decL", Ev, NONE, NONE, EMIT(normal), AO, WAOF }, { 0x02u, "callL", Ev, NONE, NONE, EMIT(call_near_mem), AO | JJ, NF }, { 0x03u, "call", Ep, NONE, NONE, EMIT(normal), AO, NF }, { 0x04u, "jmpL", Ev, NONE, NONE, EMIT(jmp_near_mem), AO | JJ, NF }, { 0x05u, "jmp", Ep, NONE, NONE, EMIT(normal), AO, NF }, { 0x06u, "pushL", Ev, NONE, NONE, EMIT(normal), AO, NF }, { 0x07u, RESERVED }};constOpCode ngroup6[8] = { { 0x00u, "sldt", Ew, NONE, NONE, EMIT(normal), AX, NF }, { 0x01u, "str", Ew, NONE, NONE, EMIT(normal), AX, NF }, { 0x02u, "lldt", Ew, NONE, NONE, EMIT(normal), AX, NF }, { 0x03u, "ltr", Ew, NONE, NONE, EMIT(normal), AX, NF }, { 0x04u, "verr", Ew, NONE, NONE, EMIT(normal), AX, WPF }, { 0x05u, "verw", Ew, NONE, NONE, EMIT(normal), AX, WPF }, { 0x06u, RESERVED }, { 0x07u, RESERVED }};const
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -