📄 opcode.c
字号:
{ 0, GPR|ALL_REGS|0x0e, GPR|ALL_REGS|MEM|MOFFSET|SIZE16,
I_GPI, 0x0f02 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LAL[] = {
/* LAL Gv, Ew */
{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|SIZE16, I_GPI, 0x0f03 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SYSCALL[] = {
/* SYSCALL */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0f05 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CLTS[] = {
/* CLTS */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0f06 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SYSRET[] = {
/* SYSRET */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0f07 },
{ 0, 0, 0, 0, 0 }
};
i_key_t WRMSR[] = {
/* WRMSR */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0f30 },
{ 0, 0, 0, 0, 0 }
};
i_key_t RDTSC[] = {
/* RDTSC */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0f31 },
{ 0, 0, 0, 0, 0 }
};
i_key_t RDMSR[] = {
/* RDMSR */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0f32 },
{ 0, 0, 0, 0, 0 }
};
i_key_t RDPMC[] = {
/* RDPMC */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0f33 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SYSENTER[] = {
/* SYSENTER */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE|ONLY_IN_64, 0x0f34 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SYSEXIT[] = {
/* SYSEXIT */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE|ONLY_IN_64, 0x0f35 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVO[] = {
/* CMOVO Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f40 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVNO[] = {
/* CMOVNO Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f41 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVB[] = {
/* CMOVB Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f42 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVNB[] = {
/* CMOVNB Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f43 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVZ[] = {
/* CMOVZ Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f44 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVNZ[] = {
/* CMOVNZ Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f45 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVBE[] = {
/* CMOVBE Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f46 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVNBE[] = {
/* CMOVNBE Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f47 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVS[] = {
/* CMOVS Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f48 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVNS[] = {
/* CMOVNS Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f49 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVP[] = {
/* CMOVP Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f4a },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVNP[] = {
/* CMOVNP Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f4b },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVL[] = {
/* CMOVL Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f4c },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVLE[] = {
/* CMOVLE Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f4e },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMOVNLE[] = {
/* CMOVNLE Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0f4f },
{ 0, 0, 0, 0, 0 }
};
i_key_t LSS[] = {
/* LSS Gz, Mp */
{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|SIZE32,
I_GPI|FAR_POINTER, 0x0fb2 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LFS[] = {
/* LFS Gz, Mp */
{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|SIZE32,
I_GPI|FAR_POINTER, 0x0fb4 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LGS[] = {
/* LGS Gz, Mp */
{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|SIZE32,
I_GPI|FAR_POINTER, 0x0fb5 },
{ 0, 0, 0, 0, 0 }
};
i_key_t CMPXCHG[] = {
/* CMPXCHG Eb, Gb */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8,
I_GPI|FS_8, 0x0fb0 },
/* CMPXCHG Ev, Gv */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e,
I_GPI, 0x0fb1 },
{ 0, 0, 0, 0, 0 }
};
i_key_t XADD[] = {
/* XADD Eb, Gb */
{ 0, GPR|ALL_REGS|MEM|MOFFSET|SIZE8, GPR|ALL_REGS|SIZE8,
I_GPI, 0x0fc0 },
/* XADD Ev, Gv */
{ 0, GPR|ALL_REGS|MEM|MOFFSET|0x0e, GPR|ALL_REGS|0x0e,
I_GPI, 0x0fc1 },
{ 0, 0, 0, 0, 0 }
};
i_key_t BSWAP[] = {
/* BSWAP rAx/r8 */
{ 0, 0, GPR|rAX|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fc8 },
/* BSWAP rCX/r9 */
{ 0, 0, GPR|rCX|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fc9 },
/* BSWAP rDX/r10 */
{ 0, 0, GPR|rDX|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fca },
/* BSWAP rBX/r11 */
{ 0, 0, GPR|rBX|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fcb },
/* BSWAP rSP/r12 */
{ 0, 0, GPR|rSP|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fcc },
/* BSWAP rBP/r13 */
{ 0, 0, GPR|rBP|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fcd },
/* BSWAP rSI/r14 */
{ 0, 0, GPR|rSI|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fce },
/* BSWAP rDI/r15 */
{ 0, 0, GPR|rDI|0xc0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fcf },
{ 0, 0, 0, 0, 0 }
};
i_key_t AAM[] = {
/* AAM */
{ 0, 0, 0, I_GPI|INVLD_IN_64|ONLY_OPCODE|NO_NEED_MODRM, 0xd4 },
{ 0, 0, 0, 0, 0 }
};
i_key_t AAD[] = {
/* AAD */
{ 0, 0, 0, I_GPI|INVLD_IN_64|ONLY_OPCODE|NO_NEED_MODRM, 0xd5 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SALC[] = {
{ 0, 0, 0, I_GPI|INVLD_IN_64|ONLY_OPCODE|NO_NEED_MODRM, 0xd6 },
{ 0, 0, 0, 0, }
};
i_key_t XLAT[] = {
{ 0, 0, 0, I_GPI|ONLY_OPCODE|NO_NEED_MODRM, 0xd7 },
{ 0, 0, 0, 0, 0 }
};
/************************************************************************/
i_set_t i_set[] = {
{ "mov", MOV },
{ "push", PUSH },
{ "add", ADD },
{ "pop", POP },
{ "or", OR },
{ "adc", ADC },
{ "sbb", SBB },
{ "and", AND },
{ "daa", DAA },
{ "sub", SUB },
{ "das", DAS },
{ "xor", XOR },
{ "aaa", AAA },
{ "cmp", CMP },
{ "aas", AAS },
{ "inc", INC },
{ "dec", DEC },
{ "pusha", PUSHA },
{ "pushd", PUSHD },
{ "popa", POPA },
{ "popd", POPD },
{ "bound", BOUND },
{ "arpl", ARPL },
{ "movsxd", MOVSXD },
{ "imul", IMUL },
{ "insb", INSB },
{ "insw", INSW },
{ "insd", INSD },
{ "outsb", OUTSB },
{ "outsw", OUTSW },
{ "outsd", OUTSD },
{ "jo", JO },
{ "jno", JNO },
{ "jb", JB },
{ "jc", JB },
{ "jnae", JB },
{ "jnb", JNB },
{ "jnc", JNB },
{ "jae", JNB },
{ "jz", JZ },
{ "je", JZ },
{ "jnz", JNZ },
{ "jne", JNZ },
{ "jbe", JBE },
{ "jna", JBE },
{ "jnbe", JNBE },
{ "ja", JNBE },
{ "js", JS },
{ "jns", JNS },
{ "jp", JP },
{ "jpe", JP },
{ "jnp", JNP },
{ "jpo", JNP },
{ "jl", JL },
{ "jnge", JL },
{ "jnl", JNL },
{ "jge", JNL },
{ "jle", JLE },
{ "jng", JLE },
{ "jnle", JNLE },
{ "jg", JNLE },
{ "test", TEST },
{ "xchg", XCHG },
{ "lea", LEA },
{ "nop", NOP },
{ "cbw", CBW },
{ "cwde", CWDE },
{ "cdqe", CDQE },
{ "cwd", CWD },
{ "cdq", CDQ },
{ "cqo", CQO },
{ "call", CALL },
{ "wait", WAIT },
{ "fwait", FWAIT },
{ "pushf", PUSHF },
{ "pushd", PUSHD },
{ "pushq", PUSHQ },
{ "popf", POPF },
{ "popd", POPD },
{ "popq", POPQ },
{ "sahf", SAHF },
{ "lahf", LAHF },
{ "movsb", MOVSB },
{ "movsw", MOVSW },
{ "movsd", MOVSD },
{ "movsq", MOVSQ },
{ "cmpsb", CMPSB },
{ "cmpsw", CMPSW },
{ "cmpsd", CMPSD },
{ "cmpsq", CMPSQ },
{ "stosb", STOSB },
{ "stosw", STOSW },
{ "stosd", STOSD },
{ "stosq", STOSQ },
{ "lodsb", LODSB },
{ "lodsw", LODSW },
{ "lodsd", LODSD },
{ "lodsq", LODSQ },
{ "scasb", SCASB },
{ "scasw", SCASW },
{ "scasd", SCASD },
{ "scasq", SCASQ },
{ "ret", RET },
{ "les", LES },
{ "lds", LDS },
{ "enter", ENTER },
{ "leave", LEAVE },
{ "int3", INT3 },
{ "int", INTN },
{ "into", INTO },
{ "iret", IRET },
{ "iretd", IRETD },
{ "iretq", IRETQ },
/*
{ "loopnz", LOOPNZ },
{ "loopz", LOOPZ },
{ "loop", LOOP },
{ "jrcxz", JRCXZ },
*/
{ "in", IN },
{ "out", OUT },
{ "jmp", JMP },
{ "int1", INT1 },
{ "hlt", HLT },
{ "cmc", CMC },
{ "clc", CLC },
{ "stc", STD },
{ "cli", CLI },
{ "sti", STI },
{ "cld", CLD },
{ "std", STD },
{ "rol", ROL },
{ "ror", ROR },
{ "rcl", RCL },
{ "rcr", RCR },
{ "shl", SHL },
{ "sal", SHL },
{ "shr", SHR },
{ "sar", SAR },
{ "not", NOT },
{ "neg", NEG },
{ "mul", MUL },
{ "div", DIV },
{ "idiv", IDIV },
{ "sldt", SLDT },
{ "str", STR },
{ "lldt", LLDT },
{ "ltr", LTR },
{ "verr", VERR },
{ "verw", VERW },
{ "sgdt", SGDT },
{ "sidt", SIDT },
{ "lgdt", LGDT },
{ "lidt", LIDT },
{ "smsw", SMSW },
{ "lmsw", LMSW },
{ "invlpg", INVLPG },
{ "swapgs", SWAPGS },
{ "lfence", LFENCE },
{ "mfence", MFENCE },
{ "sfence", SFENCE },
{ "bt", BT },
{ "shld", SHLD },
{ "bts", BTS },
{ "btr", BTR },
{ "btc", BTC },
{ "cpuid", CPUID },
{ "seto", SETO },
{ "setno", SETNO },
{ "setb", SETB },
{ "setnb", SETNB },
{ "setz", SETZ },
{ "setnz", SETNZ },
{ "setbe", SETBE },
{ "setnbe", SETNBE },
{ "movzx", MOVZX },
{ "sets", SETS },
{ "setns", SETNS },
{ "setp", SETP },
{ "setnp", SETNP },
{ "setl", SETL },
{ "setnl", SETNL },
{ "setle", SETLE },
{ "setnle", SETNLE },
{ "rsm", RSM },
{ "shrd", SHRD },
{ "bsf", BSF },
{ "bsr", BSR },
{ "movsx", MOVSX },
{ "lar", LAR },
{ "lal", LAL },
{ "syscall", SYSCALL },
{ "clts", CLTS },
{ "sysret", SYSRET },
{ "wrmsr", WRMSR },
{ "rdtsc", RDTSC },
{ "rdmsr", RDMSR },
{ "rdpmc", RDPMC },
{ "sysenter", SYSENTER },
{ "sysexit", SYSEXIT },
{ "cmovo", CMOVO },
{ "cmovno", CMOVNO },
{ "cmovb", CMOVB },
{ "cmovnb", CMOVNB },
{ "cmovz", CMOVZ },
{ "cmovnz", CMOVNZ },
{ "cmovbe", CMOVB },
{ "cmovnbe", CMOVBE },
{ "cmovs", CMOVS },
{ "cmovns", CMOVNS },
{ "cmovp", CMOVP },
{ "cmovnp", CMOVNP },
{ "cmovl", CMOVL },
{ "cmovnl", CMOVNL },
{ "cmovle", CMOVLE },
{ "cmovnle", CMOVNLE },
{ "lss", LSS },
{ "lfs", LFS },
{ "lgs", LGS },
{ "cmpxchg", CMPXCHG },
{ "xadd", XADD },
{ "bswap", BSWAP },
{ "aam", AAM },
{ "aad", AAD },
{ "salc", SALC },
{ "xlat", XLAT },
/*-------------- X87 instruction ----------------*/
#if 0
{ "fadd", fadd },
{ "fmul", fmul },
{ "fcom", fcom },
{ "fcomp", fcomp },
{ "fsub", fsub },
{ "fsubr", fsubr },
{ "fdiv", fdiv },
{ "fdivr", fdivr },
{ "fld", fld },
{ "fxch", fxch },
{ "fst", fst },
{ "fstp", fstp },
{ "fldenv", fldenv },
{ "fldcw", fldcw },
{ "fstenv", fstenv },
{ "fstcw", fstcw },
{ "fnop", fnop },
{ "fchs", fchs },
{ "fld1", fld1 },
{ "f2xm1", f2xm1 },
{ "fprem", fprem },
{ "fabs", fabs },
{ "ftst", ftst },
{ "fxam", fxam },
{ "fldl2t", fldl2t },
{ "fldl2e", fldl2e },
{ "fldpi", fldpi },
{ "fldlg2", fldlg2 },
{ "fldln2", fldln2 },
{ "fldz", fldz },
{ "fyl2x", fy12x },
{ "fptan", fptan },
{ "fpatan", fpatan },
{ "fxtract", fxtract },
{ "fprem1", fprem1 },
{ "fdecstp", fecstp },
{ "fincstp", fincstp },
{ "fyl2xp1", fyl2xp1 },
{ "fsqrt", fsqrt },
{ "fsincos", fsincos },
{ "frndint", frndint },
{ "fscale", fscale },
{ "fsin", fsin },
{ "fcos", fcos },
{ "fiadd", fiadd },
{ "fcmovb", fcmovb },
{ "fcmove", fcmove },
{ "fcmovbe", fcmovbe },
{ "fcmovu", fcmovu },
{ "fimul", fimul },
{ "ficom", ficom },
{ "ficomp", ficomp },
{ "fisub", fisub },
{ "fisubr", fisubr },
{ "fidiv", fidiv },
{ "fidivr", fidivr },
{ "fucompp", fucompp },
{ "fild", fild },
#endif
{ 0, 0 }
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -