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

📄 opcode.c

📁 Intel x86处理器的汇编器
💻 C
📖 第 1 页 / 共 5 页
字号:


#include "opcode.h"


i_set_t i_transfer[] = {

	{ "jmp", JMP },
	{ "call", CALL },

	{ "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 },

	{ "jcxz", JCXZ },
	{ "jecxz", JECXZ },
	{ "jrcxz", JRCXZ },

	{ "loopnz", LOOPNZ },
	{ "loopne", LOOPNZ },

	{ "loopz", LOOPZ },
	{ "loope", LOOPZ },

	{ "loop", LOOP },

	{ 0, 0 }
};


/***** x86-64 instruction set ********/


i_key_t ADD[] = {
	{ 0, MEM|MOFFSET|GPR|ALL_REGS|SIZE8, 
	   	GPR|ALL_REGS|SIZE8, I_GPI|FS_8, 0x00  }, /* ADD Eb, Gb */ 

	{ 0, MEM|MOFFSET|GPR|ALL_REGS|SIZE_V, 
		GPR|ALL_REGS|SIZE_V, I_GPI, 0x01 },	/* ADD Ev, Gv */
	
	/* ADD Gb, Eb */
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x02 },
	
 	/* ADD Gv, Ev */
	{ 0, GPR|ALL_REGS|SIZE_V, MEM|MOFFSET|SIZE_V, I_GPI, 0x03},
	
	/* ADD AL, Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|NO_NEED_MODRM|FS_8, 0x04 },

	/* ADD rAX, Iz	*/
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI|NO_NEED_MODRM, 0x05 },

	/******* group ********/

	/* ADD Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(0)|FS_8, 0x80 },

	/* ADD Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(0), 0x81 },
	
	/* ADD Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(0)|FS_8, 0x82 },

	/* ADD Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(0), 0x83 },

	
	{ 0, 0, 0, 0, 0}
};




i_key_t PUSH[] = {
	/* push es */
	{ 0, 0, SREG|rAX|SIZE16, 
		I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE|NO_CAST, 0x06 }, 

	 /* PUSH CS */
	{ 0, 0, SREG|rCX|SIZE16, 
		I_GPI|NO_CAST|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x0e }, 

	 /* PUSH SS */			
	{ 0, 0, SREG|rDX|SIZE16, 
		I_GPI|NO_CAST|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x16 },

	 /* PUSH DS */	
	{ 0, 0, SREG|rBX|SIZE16, 
		I_GPI|NO_CAST|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x1e },

	/* PUSH rAX/r8 */
	{ 0, 0, GPR|rAX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x50 },
	
	/* PUSH rCX/r9 */	
	{ 0, 0, GPR|rCX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x51 }, 

	/* PUSH rDX/r10 */
	{ 0, 0, GPR|rDX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x52 },
	
	/* PUSH rBX/r11 */
	{ 0, 0, GPR|rBX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x53 },
	
	/* PUSH rSP/r12 */
	{ 0, 0, GPR|rSP|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x54 },
	
	/* PUSH rBP/r13 */
	{ 0, 0, GPR|rBP|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x55 },
	
	/* PUSH rSI/r14 */	
	{ 0, 0, GPR|rSI|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x56 },
	
	/* PUSH rDI/r15 */
	{ 0, 0, GPR|rDI|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x57 },
	
	/* PUSH Iz */
	{ 0, 0, IMME|0x06, I_GPI|NO_NEED_MODRM, 0x68 },
	
	/* PUSH Ib */
	{ 0, 0, IMME|SIZE8, I_GPI|NO_NEED_MODRM, 0x6a },

	/**************** GROUP ****************/
	/* PUSH Ev */
	{ 0, 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e,
		I_GPI|GROUP|GROUPID(6), 0xff },		
	
	/***************** two byte opcode ****************/

	/* PUSH FS */
	{ 0, 0, SREG|rSP|SIZE16, 
		I_GPI|NO_CAST|NO_NEED_MODRM|ONLY_OPCODE, 0x0fa0 },	

	/* PUSH GS */
	{ 0, 0, SREG|rBP|SIZE16, 	
		I_GPI|NO_CAST|NO_NEED_MODRM|ONLY_OPCODE, 0x0fa8 },	

	{ 0, 0, 0, 0, 0 }
};




i_key_t POP[] = {
	/* POP ES */
	{ 0, 0, SREG|rAX|SIZE16, 
		I_GPI|NO_CAST|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x07 },
	
	/* POP SS */
	{ 0, 0, SREG|rDX|SIZE16,
		I_GPI|NO_CAST|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x17 },
	
	/* POP DS */
	{ 0, 0, SREG|rBX|SIZE16, 
		I_GPI|NO_CAST|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x1f },
	
	/* POP rAX/r8 */
	{ 0, 0, GPR|rAX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x58 },
	
	/* POP rCX/r9 */	
	{ 0, 0, GPR|rCX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x59 },

	/* POP rDX/r10 */
	{ 0, 0, GPR|rDX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x5a },
	
	/* POP rBX/r11 */
	{ 0, 0, GPR|rBX|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x5b },
	
	/* POP rSP/r12 */
	{ 0, 0, GPR|rSP|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x5c },
	
	/* POP rBP/r13 */	
	{ 0, 0, GPR|rBP|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x5d },
	
	/* POP rSI/r14 */
	{ 0, 0, GPR|rSI|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x5e },
	
	/* POP rDI/r15 */
	{ 0, 0, GPR|rDI|0x0e, I_GPI|NO_NEED_MODRM|ONLY_OPCODE, 0x5f },
	
	/****************** GROUP ***************/

	/* POP Ev */
	{ 0, 0, MEM|MOFFSET|0x0e, I_GPI|GROUP|GROUPID(0), 0x8f },


	/************* two byte opcode ***************/
	/* POP FS */
	{ 0, 0, SREG|rSP|SIZE16, 
		I_GPI|NO_NEED_MODRM|NO_CAST|ONLY_OPCODE, 0x0fa1 },	

	/* POP GS */
	{ 0, 0, SREG|rBP|SIZE16, 
		I_GPI|NO_NEED_MODRM|NO_CAST|ONLY_OPCODE, 0x0fa9 },	


	{ 0, 0, 0, 0, 0 }
	
};



i_key_t OR[] = {

	{ 0, MEM|MOFFSET|GPR|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8,
		I_GPI|FS_8, 0x08 },			/* OR Eb, Gb */

	/* OR Ev, Gv */
	{ 0, MEM|MOFFSET|GPR|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, I_GPI, 0x09 },
	
	/* OR Gb, Eb */
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x0a },

	/* OR Gv, Ev */
	{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|0x0e, I_GPI, 0x0b },
			
	/* OR AL, Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|NO_NEED_MODRM|FS_8,  0x0c },

	/* OR rAX, Iz */
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI|NO_NEED_MODRM, 0x0d },

	/**************** GROUP *****************/

	/* OR Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(1)|FS_8, 0x80 },

	/* OR Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(1)|FS_IN_BITS, 0x81 },
	
	/* OR Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(1)|FS_8, 0x82 },

	/* OR Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(1), 0x83 },
	
	{ 0, 0, 0, 0, 0 }
};



i_key_t ADC[] = {
	/* ADC Eb, Gb */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8, 
		I_GPI|FS_8, 0x10 },

	/* ADC Ev, Gv */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, I_GPI, 0x11 },

	/* ADC Gb, Eb */
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x12 },

	/* ADC Gv, Ev */
	{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|0x0e, I_GPI, 0x13 },


	/* ADC AL, Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|NO_NEED_MODRM|FS_8, 0x14 },

	/* ADC rAX, Iz */
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI|NO_NEED_MODRM, 0x15 },


	/***************** GROUP ************************/
	/* ADC Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(2)|FS_8, 0x80 },

	/* ADC Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(2), 0x81 },

	/* ADC Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(2)|FS_8, 0x82 },

	/* ADC Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(2), 0x83 },

	
	{ 0, 0, 0, 0, 0 }
};


i_key_t SBB[] = {
	/* SBB Eb,Gb */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8,
		I_GPI|FS_8, 0x18 },

	/* SBB Ev,Gv */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, I_GPI, 0x19 },

	/* SBB Gb,Eb */	
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x1a },

	/* SBB Gv,Ev */
	{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|0x0e, I_GPI, 0x1b },

	/* SBB AL,Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|NO_NEED_MODRM|FS_8, 0x1c },

	/* SBB rAX,Iz */
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI|NO_NEED_MODRM, 0x1d },


	/*********************** GROUP *********************/

	/* SBB Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(3)|FS_8, 0x80 },

	/* SBB Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(3), 0x81 },

	/* SBB Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(3)|FS_8, 0x82 },

	/* SBB Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(3), 0x83 },


	{ 0, 0, 0, 0, 0 }
};


i_key_t AND[] ={
	/* AND Eb,Gb */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8,
		I_GPI|FS_8, 0x20 },

	/* AND Ev,Gv */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, I_GPI, 0x21 },

	/* AND Gb,Eb */
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x22 },

	/* AND Gv,Ev */
	{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|0x0e, I_GPI, 0x23 },

	/* AND AL,Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|NO_NEED_MODRM|FS_8, 0x24 },

	/* AND rAX,Iz */
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI|NO_NEED_MODRM, 0x25 },


	/********************* GROUP ****************************/ 
	/* AND Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(4)|FS_8, 0x80 },

	/* AND Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(4), 0x81 },

	/* AND Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(4)|FS_8, 0x82 },

	/* AND Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(4), 0x83 },

	
	{ 0, 0, 0, 0, 0 }
};



i_key_t DAA[] = {
	/* DAA */
	{ 0, 0, 0, I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x27 },

	{ 0, 0, 0, 0, 0 }
};


i_key_t SUB[] = {
	/* SUB Eb,Gb */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8,
		I_GPI|FS_8, 0x28 },

	/* SUB Ev,Gv */	
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, I_GPI, 0x29 },

	/* SUB Gb,Eb */	
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x2a },

	/* SUB Gv,Ev */
	{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|0x0e, I_GPI, 0x2b },

	/* SUB AL,Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|NO_NEED_MODRM|FS_8, 0x2c },

	/* SUB rAX,Iz */
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI|NO_NEED_MODRM, 0x2d },


	/******************** GROUP ************************/
	
	/* SUB Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(5)|FS_8, 0x80 },

	/* SUB Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(5), 0x81 },

	/* SUB Eb, Ib */	
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(5)|FS_8, 0x82 },

	/* SUB Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(5), 0x83 },

	{ 0, 0, 0, 0, 0 }
};


i_key_t DAS[] = {
	/* DAS */
	{ 0, 0, 0, I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x2f },
	
	{ 0, 0, 0, 0, 0 }
};


i_key_t XOR[] = {
	/* XOR Eb,Gb */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8,
		I_GPI|FS_8, 0x30 },

	/* XOR Ev,Gv */	
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, I_GPI, 0x31 },


	/* XOR Gb,Eb */
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x32 },

	/* XOR Gv,Ev */
	{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|0x0e, I_GPI, 0x33 },

	/* X0R AL,Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|NO_NEED_MODRM|FS_8, 0x34 },

	/* XOR rAX,Iz */
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI|NO_NEED_MODRM, 0x35 },

	
	/************************* GROUP ******************************/

	/* XOR Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(6)|FS_8, 0x80 },

	/* XOR Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(6), 0x81 },

	/* XOR Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(6)|FS_8, 0x82 },


	/* XOR Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(6), 0x83 },
	
	{ 0, 0, 0, 0, 0 }
};



i_key_t AAA[] = {
	/* AAA */
	{ 0, 0, 0, I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x37 },

	{ 0, 0, 0, 0, 0 }
};



i_key_t CMP[] = {
	/* CMP Eb,Gb */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|SIZE8, GPR|ALL_REGS|SIZE8,
		I_GPI|FS_8, 0x38 },
	
	/* CMP Ev,Gv */	
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, GPR|ALL_REGS|0x0e, I_GPI, 0x39 },

	/* CMP Gb,Eb */
	{ 0, GPR|ALL_REGS|SIZE8, MEM|MOFFSET|SIZE8, I_GPI|FS_8, 0x3a },

	/* CMP Gv,Ev */
	{ 0, GPR|ALL_REGS|0x0e, MEM|MOFFSET|0x0e, I_GPI, 0x3b },

	/* CMP AL,Ib */
	{ 0, GPR|rAX|SIZE8, IMME|SIZE8, I_GPI|FS_8, 0x3c },

	/* CMP rAX,Iz */
	{ 0, GPR|rAX|0x0e, IMME|0x0e, I_GPI, 0x3d },


	/************************* GROUP ******************************/

	/* CMP Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(7)|FS_8, 0x80 },

	/* CMP Ev, Iz */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|0x0e, IMME|0x0e,
		I_GPI|GROUP|GROUPID(7), 0x81 },

	/* CMP Eb, Ib */
	{ 0, GPR|MEM|MOFFSET|0x7f000000|SIZE8, IMME|SIZE8,
		I_GPI|INVLD_IN_64|GROUP|GROUPID(7)|FS_8, 0x82 },

	/* CMP Ev, Ib */
	{ 0, GPR|MEM|MOFFSET|ALL_REGS|0x0e, IMME|SIZE8,
		I_GPI|GROUP|GROUPID(7), 0x83 },

	{ 0, 0, 0, 0, 0 }
};


i_key_t AAS[] = {
 	/* AAS */
	{ 0, 0, 0, I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x3f },

	{ 0, 0, 0, 0, 0 }
};



i_key_t INC[] = {
	/* INC eAX */
	{ 0, 0, GPR|rAX|0x06,
		I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x40 },

	/* INC eCX */
	{ 0, 0, GPR|rCX|0x06,
		I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x41 },

	/* INC eDX */
	{ 0, 0, GPR|rDX|0x06,
		I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x42 },

	/* INC eBX */
	{ 0, 0, GPR|rBX|0x06,
		I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x43 },

	/* INC eSP */
	{ 0, 0, GPR|rSP|0x06,
		I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x44 },

	/* INC eBP */
	{ 0, 0, GPR|rBP|0x06,
		I_GPI|INVLD_IN_64|NO_NEED_MODRM|ONLY_OPCODE, 0x45 },

	/* INC eSI */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -