⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opcode.c

📁 Intel x86处理器的汇编器
💻 C
📖 第 1 页 / 共 5 页
字号:
		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 + -