📄 opcode.cpp
字号:
{ _INVALID },
{ _INVALID },
// 0F 38
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
// 0F 40
{ _CMOVO, _Gv, _Ev },
{ _CMOVNO, _Gv, _Ev },
{ _CMOVB, _Gv, _Ev },
{ _CMOVAE, _Gv, _Ev },
{ _CMOVE, _Gv, _Ev },
{ _CMOVNE, _Gv, _Ev },
{ _CMOVBE, _Gv, _Ev },
{ _CMOVA, _Gv, _Ev },
// 0F 48
{ _CMOVS, _Gv, _Ev },
{ _CMOVNS, _Gv, _Ev },
{ _CMOVP, _Gv, _Ev },
{ _CMOVNP, _Gv, _Ev },
{ _CMOVL, _Gv, _Ev },
{ _CMOVGE, _Gv, _Ev },
{ _CMOVLE, _Gv, _Ev },
{ _CMOVG, _Gv, _Ev },
// 0F 50
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
// 0F 58
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
// 0F 60
{ _PUNPCKLBW, _Pq, _Qd },
{ _PUNPCKLWD, _Pq, _Qd },
{ _PUNPCKLDQ, _Pq, _Qd },
{ _PACKUSDW, _Pq, _Qd },
{ _PCMPGTB, _Pq, _Qd },
{ _PCMPGTW, _Pq, _Qd },
{ _PCMPGTD, _Pq, _Qd },
{ _PACKSSWB, _Pq, _Qd },
// 0F 68
{ _PUNPCKHBW, _Pq, _Qd },
{ _PUNPCKHWD, _Pq, _Qd },
{ _PUNPCKHDQ, _Pq, _Qd },
{ _PACKSSDW, _Pq, _Qd },
{ _INVALID },
{ _INVALID },
{ _MOVD, _Pq, _Qd },
{ _MOVQ, _Pq, _Qd },
// 0F 70
{ _INVALID },
{ _GrpA },
{ _GrpA },
{ _GrpA },
{ _PCMPEQB, _Pq, _Qd },
{ _PCMPEQW, _Pq, _Qd },
{ _PCMPEQD, _Pd, _Qd },
{ _EMMS },
// 0F 78
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _MOVD, _Pd, _Ed },
{ _MOVQ, _Pq, _Eq },
// 0F 80
{ _JO, _Jv },
{ _JNO, _Jv },
{ _JB, _Jv },
{ _JNB, _Jv },
{ _JZ, _Jv },
{ _JNZ, _Jv },
{ _JBE, _Jv },
{ _JNBE, _Jv },
// 0F 88
{ _JS, _Jv },
{ _JNS, _Jv },
{ _JP, _Jv },
{ _JNP, _Jv },
{ _JL, _Jv },
{ _JNL, _Jv },
{ _JLE, _Jv },
{ _JNLE, _Jv },
// 0F 90
{ _SETO, _Eb },
{ _SETNO, _Eb },
{ _SETB, _Eb },
{ _SETNB, _Eb },
{ _SETZ, _Eb },
{ _SETNZ, _Eb },
{ _SETBE, _Eb },
{ _SETNBE, _Eb },
// 0F 98
{ _SETS, _Eb },
{ _SETNS, _Eb },
{ _SETP, _Eb },
{ _SETNP, _Eb },
{ _SETL, _Eb },
{ _SETNL, _Eb },
{ _SETLE, _Eb },
{ _SETNLE, _Eb },
// 0F A0
{ _PUSH, _FS },
{ _POP, _FS },
{ _CPUID },
{ _BT, _Ev, _Gv },
{ _SHLD, _Ev, _Gv, _Ib },
{ _SHLD, _Ev, _Gv, _CL },
{ _INVALID },
{ _INVALID },
// 0F A8
{ _PUSH, _GS },
{ _POP, _GS },
{ _RSM },
{ _BTS, _Ev, _Gv },
{ _SHRD, _Ev, _Gv, _Ib },
{ _SHRD, _Ev, _Gv, _CL },
{ _INVALID },
{ _IMUL, _Gv, _Ev },
// 0F B0
{ _CMPXCHG, _Eb, _Gb },
{ _CMPXCHG, _Ev, _Gv },
{ _LSS, _Mp },
{ _BTR, _Ev, _Gv },
{ _LFS, _Mp },
{ _LGS, _Mp },
{ _MOVZX, _Gv, _Eb },
{ _MOVZX, _Gv, _Ew },
// 0F B8
{ _INVALID },
{ _INVALID },
{ _Grp8, _Ev, _Ib },
{ _BTC, _Ev, _Gv },
{ _BSF, _Gv, _Ev },
{ _BSR, _Gv, _Ev },
{ _MOVSX, _Gv, _Eb },
{ _MOVSX, _Gv, _Ew },
// 0F C0
{ _XADD, _Eb, _Gb },
{ _XADD, _Ev, _Gv },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _Grp9, },
// 0F C8
{ _BSWAP, _EAX },
{ _BSWAP, _ECX },
{ _BSWAP, _EDX },
{ _BSWAP, _EBX },
{ _BSWAP, _ESP },
{ _BSWAP, _EBP },
{ _BSWAP, _ESI },
{ _BSWAP, _EDI },
// 0F D0
{ _INVALID },
{ _PSRLW, _Pq, _Qd },
{ _PSRLD, _Pq, _Qd },
{ _PSRLQ, _Pq, _Qd },
{ _INVALID },
{ _PMULLW, _Pq, _Qd },
{ _INVALID },
{ _INVALID },
// 0F D8
{ _PSUBUSB, _Pq, _Qq },
{ _PSUBUSW, _Pq, _Qq },
{ _INVALID },
{ _PAND, _Pq, _Qq },
{ _PADDUSB, _Pq, _Qq },
{ _PADDUSW, _Pq, _Qq },
{ _INVALID },
{ _PANDN, _Pq, _Qq },
// 0F E0
{ _INVALID },
{ _PSRAW, _Pq, _Qd },
{ _PSRLD, _Pq, _Qd },
{ _PSRLQ, _Pq, _Qd },
{ _INVALID },
{ _PMULLW, _Pq, _Qd },
{ _INVALID },
{ _INVALID },
// 0F E8
{ _PSUBSB, _Pq, _Qq },
{ _PSUBSW, _Pq, _Qq },
{ _INVALID },
{ _POR, _Pq, _Qq },
{ _PADDSB, _Pq, _Qq },
{ _PADDSW, _Pq, _Qq },
{ _INVALID },
{ _PXOR, _Pq, _Qq },
// 0F F0
{ _INVALID },
{ _PSLLW, _Pq, _Qd },
{ _PSLLD, _Pq, _Qd },
{ _PSLLQ, _Pq, _Qd },
{ _INVALID },
{ _PMADDWD, _Pq, _Qd },
{ _INVALID },
{ _INVALID },
// 0F F8
{ _PSUBB, _Pq, _Qq },
{ _PSUBW, _Pq, _Qq },
{ _PSUBD, _Pq, _Qq },
{ _INVALID },
{ _PADDB, _Pq, _Qq },
{ _PADDW, _Pq, _Qq },
{ _PADDD, _Pq, _Qq }
};
// Group 1 opcode
const OpCode OpCodeMap_Grp1[8] =
{
{ _ADD },
{ _OR },
{ _ADC },
{ _SBB },
{ _AND },
{ _SUB },
{ _XOR },
{ _CMP }
};
// Group 2 opcode
const OpCode OpCodeMap_Grp2[8] =
{
{ _ROL },
{ _ROR },
{ _RCL },
{ _RCR },
{ _SHL },
{ _SHR },
{ _INVALID },
{ _SAR }
};
// Group 3b opcode
const OpCode OpCodeMap_Grp3b[8] =
{
{ _TEST, _Eb, _Ib },
{ _INVALID },
{ _NOT },
{ _NEG },
{ _MUL, _AL },
{ _IMUL, _AL },
{ _DIV, _AL },
{ _IDIV, _AL }
};
// Group 3v opcode
const OpCode OpCodeMap_Grp3v[8] =
{
{ _TEST, _Ev, _Iv },
{ _INVALID },
{ _NOT },
{ _NEG },
{ _MUL, _eAX },
{ _IMUL, _eAX },
{ _DIV, _eAX },
{ _IDIV, _eAX }
};
// Group 4 opcode
const OpCode OpCodeMap_Grp4[8] =
{
{ _INC, _Eb },
{ _DEC, _Eb },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID }
};
// Group 5 opcode
const OpCode OpCodeMap_Grp5[8] =
{
{ _INC, _Ev },
{ _DEC, _Ev },
{ _CALL, _Ev },
{ _CALL, _Ep },
{ _JMP, _Ev },
{ _JMP, _Ep },
{ _PUSH, _Ev },
{ _INVALID }
};
// group 6 opcode
const OpCode OpCodeMap_Grp6[8] =
{
{ _SLDT, _Ew },
{ _STR, _Ew },
{ _LLDT, _Ew },
{ _LTR, _Ew },
{ _VERR, _Ew },
{ _VERW, _Ew },
{ _INVALID },
{ _INVALID }
};
// group 7 opcode
const OpCode OpCodeMap_Grp7[8] =
{
{ _SGDT, _Ms },
{ _SIDT, _Ms },
{ _LGDT, _Ms },
{ _LIDT, _Ms },
{ _SMSW, _Ew },
{ _INVALID },
{ _LMSW, _Ew },
{ _INVLPG }
};
// group 8 opcode
const OpCode OpCodeMap_Grp8[8] =
{
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _BT },
{ _BTS },
{ _BTR },
{ _BTC }
};
// group 9 opcode
const OpCode OpCodeMap_Grp9[8] =
{
{ _INVALID },
{ _CMPXCH8, _BMq },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID },
{ _INVALID }
};
// group A opcode
const OpCode OpCodeMap_GrpA[8] =
{
{ _INVALID },
{ _INVALID },
{ _PSRLDWQ, _Pq, _Ib },
{ _INVALID },
{ _PSRADW, _Pq, _Ib },
{ _INVALID },
{ _PSLLDWQ, _Pq, _Ib },
{ _INVALID }
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -