📄 opcode.c
字号:
I_GPI|GROUP|GROUPID(2), 0xd1 },
/* RCL Eb, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|rCX|SIZE8,
I_GPI|GROUP|GROUPID(2)|FS_8, 0xd2 },
/* RCL Ev, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(2), 0xd3 },
{ 0, 0, 0, 0, 0 }
};
i_key_t RCR[] = {
/* RCR Eb, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(3)|FS_8, 0xc0 },
/* RCR Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(3), 0xc1 },
/* RCR Eb, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(3), 0xd0 },
/* RCR Ev, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(3), 0xd1 },
/* RCR Eb, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|rCX|SIZE8,
I_GPI|GROUP|GROUPID(3)|FS_8, 0xd2 },
/* RCR Ev, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(3), 0xd3 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SHL[] = {
/* SHL Eb, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(4)|FS_8, 0xc0 },
/* SHL Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(4), 0xc1 },
/* SHL Eb, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(4), 0xd0 },
/* SHL Ev, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(4), 0xd1 },
/* SHL Eb, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|rCX|SIZE8,
I_GPI|GROUP|GROUPID(4)|FS_8, 0xd2 },
/* SHL Ev, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(4), 0xd3 },
/*********** other ***************/
/* SHL Eb, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(6)|FS_8, 0xc0 },
/* SHL Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(6), 0xc1 },
/* SHL Eb, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(6), 0xd0 },
/* SHL Ev, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(6), 0xd1 },
/* SHL Eb, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|rCX|SIZE8,
I_GPI|GROUP|GROUPID(6)|FS_8, 0xd2 },
/* SHL Ev, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(6), 0xd3 },
{ 0, 0, 0, 0, 0 }
};
/* SAL = SHL */
i_key_t *SAL = SHL;
i_key_t SHR[] = {
/* SHR Eb, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(5)|FS_8, 0xc0 },
/* SHR Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(5), 0xc1 },
/* SHR Eb, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(5), 0xd0 },
/* SHR Ev, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(5), 0xd1 },
/* SHR Eb, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|rCX|SIZE8,
I_GPI|GROUP|GROUPID(5)|FS_8, 0xd2 },
/* SHR Ev, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(5), 0xd3 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SAR[] = {
/* SAR Eb, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(7)|FS_8, 0xc0 },
/* SAR Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, 0x800|SIZE8,
I_GPI|GROUP|GROUPID(7), 0xc1 },
/* SAR Eb, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(7), 0xd0 },
/* SAR Ev, 1 */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME_1|SIZE8,
I_GPI|GROUP|GROUPID(7), 0xd1 },
/* SAR Eb, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|rCX|SIZE8,
I_GPI|GROUP|GROUPID(7)|FS_8, 0xd2 },
/* SAR Ev, CL */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(7), 0xd3 },
{ 0, 0, 0, 0, 0 }
};
i_key_t NOT[] = {
/* NOT Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8,
I_GPI|GROUP|GROUPID(2)|FS_8, 0xf6 },
/* NOT Ev */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI|GROUP|GROUPID(2), 0xf7 },
{ 0, 0, 0, 0, 0 }
};
i_key_t NEG[] = {
/* NEG Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8,
I_GPI|GROUP|GROUPID(3)|FS_8, 0xf6 },
/* NEG Ev */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI|GROUP|GROUPID(3), 0xf7 },
{ 0, 0, 0, 0, 0 }
};
i_key_t MUL[] = {
/* MUL Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8,
I_GPI|GROUP|GROUPID(4)|FS_8, 0xf6 },
/* MUL Ev */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI|GROUP|GROUPID(4), 0xf7 },
{ 0, 0, 0, 0, 0 }
};
i_key_t DIV[] = {
/* DIV Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8,
I_GPI|GROUP|GROUPID(6)|FS_8, 0xf6 },
/* DIV Ev */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI|GROUP|GROUPID(6)|FS_8, 0xf7 },
{ 0, 0, 0, 0, 0 }
};
i_key_t IDIV[] = {
/* IDIV Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8,
I_GPI|GROUP|GROUPID(7)|FS_8, 0xf6 },
/* IDIV Ev */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI|GROUP|GROUPID(7)|FS_8, 0xf7 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SLDT[] = {
/* SLDT Mw/Rv */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(0), 0x0f00 },
{ 0, 0, 0, 0, 0 }
};
i_key_t STR[] = {
/* STR Mw/Rv */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(1), 0x0f00 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LLDT[] = {
/* LLDT Ew */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(2), 0x0f00 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LTR[] = {
/* LTR Ew */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(3), 0x0f00 },
{ 0, 0, 0, 0, 0 }
};
i_key_t VERR[] = {
/* VERR Ew */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(4), 0x0f00 },
{ 0, 0, 0, 0, 0 }
};
i_key_t VERW[] = {
/* VERW Ew */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(5), 0x0f00 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SGDT[] = {
/* SGDT Ms */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(0), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SIDT[] = {
/* SIDT Ms */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(1), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LGDT[] = {
/* LGDT Ms */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(2), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LIDT[] = {
/* LIDT Ms */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(3), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SMSW[] = {
/* SMSW Mw/Rv */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(4), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LMSW[] = {
/* LMSW Mw/Rv */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(6), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t INVLPG[] = {
/* INVLPG Mb */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(7), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SWAPGS[] = {
/* SWAPGS */
/* mod = 11 of modrm's byte */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(7), 0x0f01 },
{ 0, 0, 0, 0, 0 }
};
i_key_t LFENCE[] = {
/* LFENCE */
/* mod = 11 of modrm's byte */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(5), 0x0fae },
{ 0, 0, 0, 0, 0 }
};
i_key_t MFENCE[] = {
/* MFENCE */
/* mod = 11 of modrm's byte */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(6), 0x0fae },
{ 0, 0, 0, 0, 0 }
};
i_key_t SFENCE[] = {
/* SFENCE */
/* mod = 11 of modrm's byte */
{ 0, 0, 0, I_GPI|GROUP|GROUPID(7), 0x0fae },
{ 0, 0, 0, 0, 0 }
};
i_key_t BT[] = {
/* BT Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(4), 0x0fba },
/****************** two byte opcode *******************/
/* BT Ev, Gv */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e,
I_GPI, 0x0fa3 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SHLD[] = {
/* SHLD Ev, Gv, Ib */
{ GPR|ALL_REGS|MEM|MOFFSET|0x0e, GPR|ALL_REGS|0x0e,
IMME|SIZE8, I_GPI, 0x0fa4 },
{ GPR|ALL_REGS|MEM|MOFFSET|0x0e, GPR|ALL_REGS|0x0e,
GPR|rCX|SIZE8, I_GPI, 0x0fa5 },
{ 0, 0, 0, 0, 0 }
};
i_key_t BTS[] = {
/* BTS Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(5), 0x0fba },
/* BTS Ev, Gv */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e,
I_GPI, 0x0fab },
{ 0, 0, 0, 0, 0 }
};
i_key_t BTR[] = {
/* BTR Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(6), 0x0fba },
/* BTR Ev, Gv */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e,
I_GPI, 0x0fb3 },
{ 0, 0, 0, 0, 0 }
};
i_key_t BTC[] = {
/* BTC Ev, Ib */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI|GROUP|GROUPID(7), 0x0fba },
/* BTC Ev, Gv */
{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e,
I_GPI, 0x0fbb },
{ 0, 0, 0, 0, 0 }
};
i_key_t CPUID[] = {
/* CPUID */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0fa2 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETO[] = {
/* SETO Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f90 },
/* { 0, 0, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x0f90 }, */
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNO[] = {
/* SETNO Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f91 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETB[] = {
/* SETB Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f92 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNB[] = {
/* SETNB Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f93 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETZ[] = {
/* SETZ Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f94 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNZ[] = {
/* SETNZ Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f95 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETBE[] = {
/* SETBE Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f96 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNBE[] = {
/* SETNBE Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0f97 },
{ 0, 0, 0, 0, 0 }
};
i_key_t MOVZX[] = {
/* MOVZX Gv, Eb */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI, 0x0fb6 },
/* MOVZX Gv, Ew */
{ 0, GPR|ALL_REGS|0x0e,
GPR|MEM|MOFFSET|ALL_REGS|SIZE16, I_GPI, 0x0fb7 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETS[] = {
/* SETS Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f98 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNS[] = {
/* SETNS Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f99 },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETP[] = {
/* SETP Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f9a },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNP[] = {
/* SETNP Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f9b },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETL[] = {
/* SETL Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f9c },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNL[] = {
/* SETNL Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f9d },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETLE[] = {
/* SETLE Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f9e },
{ 0, 0, 0, 0, 0 }
};
i_key_t SETNLE[] = {
/* SETNLE Eb */
{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, I_GPI|FS_8, 0x0f9f },
{ 0, 0, 0, 0, 0 }
};
i_key_t RSM[] = {
/* RSM */
{ 0, 0, 0, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x0faa },
{ 0, 0, 0, 0, 0 }
};
i_key_t SHRD[] = {
/* SHRD Ev, Gv, Ib */
{ GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, IMME|SIZE8,
I_GPI, 0x0fac },
/* SHRD Ev, Gv, CL */
{ GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, GPR|rCX|SIZE8,
I_GPI, 0x0fad },
{ 0, 0, 0, 0, 0 }
};
i_key_t BSF[] = {
/* BSF Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0fbc },
{ 0, 0, 0, 0, 0 }
};
i_key_t BSR[] = {
/* BSR Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0fbd },
{ 0, 0, 0, 0, 0 }
};
i_key_t MOVSX[] = {
/* MOVSX Gv, Eb */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|SIZE8,
I_GPI, 0x0fbe },
/* MOVSX Gv, Ev */
{ 0, GPR|ALL_REGS|0x0e, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
I_GPI, 0x0fbf },
{ 0, 0, 0, 0, 0 }
};
i_key_t LAR[] = {
/* LAR Gv, Ew */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -