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

📄 opcode.cpp

📁 Windows 图形编程 书籍
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	{ _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 + -