DOSBox-X
|
00001 /* 00002 * Copyright (C) 2002-2020 The DOSBox Team 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License along 00015 * with this program; if not, write to the Free Software Foundation, Inc., 00016 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 */ 00018 00019 /* Big ass opcode table normal,double, 66 normal, 66 double */ 00020 static OpCode OpCodeTable[1024]={ 00021 /* 0x00 - 0x07 */ 00022 {L_MODRM ,t_ADDb ,S_Eb ,M_EbGb },{L_MODRM ,t_ADDw ,S_Ew ,M_EwGw }, 00023 {L_MODRM ,t_ADDb ,S_Gb ,M_GbEb },{L_MODRM ,t_ADDw ,S_Gw ,M_GwEw }, 00024 {L_REGbIb ,t_ADDb ,S_REGb ,REGI_AL },{L_REGwIw ,t_ADDw ,S_REGw ,REGI_AX }, 00025 {L_SEG ,0 ,S_PUSHw,es },{D_POPSEGw,0 ,0 ,es }, 00026 /* 0x08 - 0x0f */ 00027 {L_MODRM ,t_ORb ,S_Eb ,M_EbGb },{L_MODRM ,t_ORw ,S_Ew ,M_EwGw }, 00028 {L_MODRM ,t_ORb ,S_Gb ,M_GbEb },{L_MODRM ,t_ORw ,S_Gw ,M_GwEw }, 00029 {L_REGbIb ,t_ORb ,S_REGb ,REGI_AL },{L_REGwIw ,t_ORw ,S_REGw ,REGI_AX }, 00030 {L_SEG ,0 ,S_PUSHw,cs },{L_DOUBLE ,0 ,0 ,0 }, 00031 00032 /* 0x10 - 0x17 */ 00033 {L_MODRM ,t_ADCb ,S_Eb ,M_EbGb },{L_MODRM ,t_ADCw ,S_Ew ,M_EwGw }, 00034 {L_MODRM ,t_ADCb ,S_Gb ,M_GbEb },{L_MODRM ,t_ADCw ,S_Gw ,M_GwEw }, 00035 {L_REGbIb ,t_ADCb ,S_REGb ,REGI_AL },{L_REGwIw ,t_ADCw ,S_REGw ,REGI_AX }, 00036 {L_SEG ,0 ,S_PUSHw,ss },{D_POPSEGw,0 ,0 ,ss }, 00037 /* 0x18 - 0x1f */ 00038 {L_MODRM ,t_SBBb ,S_Eb ,M_EbGb },{L_MODRM ,t_SBBw ,S_Ew ,M_EwGw }, 00039 {L_MODRM ,t_SBBb ,S_Gb ,M_GbEb },{L_MODRM ,t_SBBw ,S_Gw ,M_GwEw }, 00040 {L_REGbIb ,t_SBBb ,S_REGb ,REGI_AL },{L_REGwIw ,t_SBBw ,S_REGw ,REGI_AX }, 00041 {L_SEG ,0 ,S_PUSHw,ds },{D_POPSEGw,0 ,0 ,ds }, 00042 00043 /* 0x20 - 0x27 */ 00044 {L_MODRM ,t_ANDb ,S_Eb ,M_EbGb },{L_MODRM ,t_ANDw ,S_Ew ,M_EwGw }, 00045 {L_MODRM ,t_ANDb ,S_Gb ,M_GbEb },{L_MODRM ,t_ANDw ,S_Gw ,M_GwEw }, 00046 {L_REGbIb ,t_ANDb ,S_REGb ,REGI_AL },{L_REGwIw ,t_ANDw ,S_REGw ,REGI_AX }, 00047 {L_PRESEG ,0 ,0 ,es },{D_DAA ,0 ,0 ,0 }, 00048 /* 0x28 - 0x2f */ 00049 {L_MODRM ,t_SUBb ,S_Eb ,M_EbGb },{L_MODRM ,t_SUBw ,S_Ew ,M_EwGw }, 00050 {L_MODRM ,t_SUBb ,S_Gb ,M_GbEb },{L_MODRM ,t_SUBw ,S_Gw ,M_GwEw }, 00051 {L_REGbIb ,t_SUBb ,S_REGb ,REGI_AL },{L_REGwIw ,t_SUBw ,S_REGw ,REGI_AX }, 00052 {L_PRESEG ,0 ,0 ,cs },{D_DAS ,0 ,0 ,0 }, 00053 00054 /* 0x30 - 0x37 */ 00055 {L_MODRM ,t_XORb ,S_Eb ,M_EbGb },{L_MODRM ,t_XORw ,S_Ew ,M_EwGw }, 00056 {L_MODRM ,t_XORb ,S_Gb ,M_GbEb },{L_MODRM ,t_XORw ,S_Gw ,M_GwEw }, 00057 {L_REGbIb ,t_XORb ,S_REGb ,REGI_AL },{L_REGwIw ,t_XORw ,S_REGw ,REGI_AX }, 00058 {L_PRESEG ,0 ,0 ,ss },{D_AAA ,0 ,0 ,0 }, 00059 /* 0x38 - 0x3f */ 00060 {L_MODRM ,t_CMPb ,0 ,M_EbGb },{L_MODRM ,t_CMPw ,0 ,M_EwGw }, 00061 {L_MODRM ,t_CMPb ,0 ,M_GbEb },{L_MODRM ,t_CMPw ,0 ,M_GwEw }, 00062 {L_REGbIb ,t_CMPb ,0 ,REGI_AL },{L_REGwIw ,t_CMPw ,0 ,REGI_AX }, 00063 {L_PRESEG ,0 ,0 ,ds },{D_AAS ,0 ,0 ,0 }, 00064 00065 /* 0x40 - 0x47 */ 00066 {L_REGw ,t_INCw ,S_REGw ,REGI_AX},{L_REGw ,t_INCw ,S_REGw ,REGI_CX}, 00067 {L_REGw ,t_INCw ,S_REGw ,REGI_DX},{L_REGw ,t_INCw ,S_REGw ,REGI_BX}, 00068 {L_REGw ,t_INCw ,S_REGw ,REGI_SP},{L_REGw ,t_INCw ,S_REGw ,REGI_BP}, 00069 {L_REGw ,t_INCw ,S_REGw ,REGI_SI},{L_REGw ,t_INCw ,S_REGw ,REGI_DI}, 00070 /* 0x48 - 0x4f */ 00071 {L_REGw ,t_DECw ,S_REGw ,REGI_AX},{L_REGw ,t_DECw ,S_REGw ,REGI_CX}, 00072 {L_REGw ,t_DECw ,S_REGw ,REGI_DX},{L_REGw ,t_DECw ,S_REGw ,REGI_BX}, 00073 {L_REGw ,t_DECw ,S_REGw ,REGI_SP},{L_REGw ,t_DECw ,S_REGw ,REGI_BP}, 00074 {L_REGw ,t_DECw ,S_REGw ,REGI_SI},{L_REGw ,t_DECw ,S_REGw ,REGI_DI}, 00075 00076 /* 0x50 - 0x57 */ 00077 {L_REGw ,0 ,S_PUSHw,REGI_AX},{L_REGw ,0 ,S_PUSHw,REGI_CX}, 00078 {L_REGw ,0 ,S_PUSHw,REGI_DX},{L_REGw ,0 ,S_PUSHw,REGI_BX}, 00079 {L_REGw ,0 ,S_PUSHw,REGI_SP},{L_REGw ,0 ,S_PUSHw,REGI_BP}, 00080 {L_REGw ,0 ,S_PUSHw,REGI_SI},{L_REGw ,0 ,S_PUSHw,REGI_DI}, 00081 /* 0x58 - 0x5f */ 00082 {L_POPw ,0 ,S_REGw ,REGI_AX},{L_POPw ,0 ,S_REGw ,REGI_CX}, 00083 {L_POPw ,0 ,S_REGw ,REGI_DX},{L_POPw ,0 ,S_REGw ,REGI_BX}, 00084 {L_POPw ,0 ,S_REGw ,REGI_SP},{L_POPw ,0 ,S_REGw ,REGI_BP}, 00085 {L_POPw ,0 ,S_REGw ,REGI_SI},{L_POPw ,0 ,S_REGw ,REGI_DI}, 00086 00087 00088 /* 0x60 - 0x67 */ 00089 {D_PUSHAw ,0 ,0 ,0 },{D_POPAw ,0 ,0 ,0 }, 00090 {L_MODRM ,O_BOUNDw ,0 ,M_Gw },{L_MODRM_NVM ,O_ARPL ,S_Ew ,M_EwGw }, 00091 {L_PRESEG ,0 ,0 ,fs },{L_PRESEG ,0 ,0 ,gs }, 00092 {L_PREOP ,0 ,0 ,0 },{L_PREADD ,0 ,0 ,0 }, 00093 /* 0x68 - 0x6f */ 00094 {L_Iw ,0 ,S_PUSHw,0 },{L_MODRM ,O_IMULRw ,S_Gw ,M_EwxIwx}, 00095 {L_Ibx ,0 ,S_PUSHw,0 },{L_MODRM ,O_IMULRw ,S_Gw ,M_EwxIbx}, 00096 {L_STRING ,R_INSB ,0 ,0 },{L_STRING ,R_INSW ,0 ,0 }, 00097 {L_STRING ,R_OUTSB ,0 ,0 },{L_STRING ,R_OUTSW ,0 ,0 }, 00098 00099 00100 /* 0x70 - 0x77 */ 00101 {L_Ibx ,O_C_O ,S_C_AIPw,0 },{L_Ibx ,O_C_NO ,S_C_AIPw,0 }, 00102 {L_Ibx ,O_C_B ,S_C_AIPw,0 },{L_Ibx ,O_C_NB ,S_C_AIPw,0 }, 00103 {L_Ibx ,O_C_Z ,S_C_AIPw,0 },{L_Ibx ,O_C_NZ ,S_C_AIPw,0 }, 00104 {L_Ibx ,O_C_BE ,S_C_AIPw,0 },{L_Ibx ,O_C_NBE ,S_C_AIPw,0 }, 00105 /* 0x78 - 0x7f */ 00106 {L_Ibx ,O_C_S ,S_C_AIPw,0 },{L_Ibx ,O_C_NS ,S_C_AIPw,0 }, 00107 {L_Ibx ,O_C_P ,S_C_AIPw,0 },{L_Ibx ,O_C_NP ,S_C_AIPw,0 }, 00108 {L_Ibx ,O_C_L ,S_C_AIPw,0 },{L_Ibx ,O_C_NL ,S_C_AIPw,0 }, 00109 {L_Ibx ,O_C_LE ,S_C_AIPw,0 },{L_Ibx ,O_C_NLE ,S_C_AIPw,0 }, 00110 00111 00112 /* 0x80 - 0x87 */ 00113 {L_MODRM ,0 ,0 ,M_GRP },{L_MODRM ,1 ,0 ,M_GRP }, 00114 {L_MODRM ,0 ,0 ,M_GRP },{L_MODRM ,3 ,0 ,M_GRP }, 00115 {L_MODRM ,t_TESTb ,0 ,M_EbGb },{L_MODRM ,t_TESTw ,0 ,M_EwGw }, 00116 {L_MODRM ,0 ,S_EbGb ,M_GbEb },{L_MODRM ,0 ,S_EwGw ,M_GwEw }, 00117 /* 0x88 - 0x8f */ 00118 {L_MODRM ,0 ,S_Eb ,M_Gb },{L_MODRM ,0 ,S_Ew ,M_Gw }, 00119 {L_MODRM ,0 ,S_Gb ,M_Eb },{L_MODRM ,0 ,S_Gw ,M_Ew }, 00120 {L_MODRM ,0 ,S_Ew ,M_SEG },{L_MODRM ,0 ,S_Gw ,M_EA }, 00121 {L_MODRM ,0 ,S_SEGm ,M_Ew },{L_POPwRM ,0 ,S_Ew ,M_None }, 00122 00123 /* 0x90 - 0x97 */ 00124 {D_NOP ,0 ,0 ,0 },{L_REGw ,O_XCHG_AX ,S_REGw ,REGI_CX}, 00125 {L_REGw ,O_XCHG_AX ,S_REGw ,REGI_DX},{L_REGw ,O_XCHG_AX ,S_REGw ,REGI_BX}, 00126 {L_REGw ,O_XCHG_AX ,S_REGw ,REGI_SP},{L_REGw ,O_XCHG_AX ,S_REGw ,REGI_BP}, 00127 {L_REGw ,O_XCHG_AX ,S_REGw ,REGI_SI},{L_REGw ,O_XCHG_AX ,S_REGw ,REGI_DI}, 00128 /* 0x98 - 0x9f */ 00129 {D_CBW ,0 ,0 ,0 },{D_CWD ,0 ,0 ,0 }, 00130 {L_Ifw ,O_CALLFw ,0 ,0 },{D_WAIT ,0 ,0 ,0 }, 00131 {D_PUSHF ,0 ,0 ,0 },{D_POPF ,0 ,0 ,0 }, 00132 {D_SAHF ,0 ,0 ,0 },{D_LAHF ,0 ,0 ,0 }, 00133 00134 00135 /* 0xa0 - 0xa7 */ 00136 {L_OP ,O_ALOP ,0 ,0 },{L_OP ,O_AXOP ,0 ,0 }, 00137 {L_OP ,O_OPAL ,0 ,0 },{L_OP ,O_OPAX ,0 ,0 }, 00138 {L_STRING ,R_MOVSB ,0 ,0 },{L_STRING ,R_MOVSW ,0 ,0 }, 00139 {L_STRING ,R_CMPSB ,0 ,0 },{L_STRING ,R_CMPSW ,0 ,0 }, 00140 /* 0xa8 - 0xaf */ 00141 {L_REGbIb ,t_TESTb ,0 ,REGI_AL},{L_REGwIw ,t_TESTw ,0 ,REGI_AX}, 00142 {L_STRING ,R_STOSB ,0 ,0 },{L_STRING ,R_STOSW ,0 ,0 }, 00143 {L_STRING ,R_LODSB ,0 ,0 },{L_STRING ,R_LODSW ,0 ,0 }, 00144 {L_STRING ,R_SCASB ,0 ,0 },{L_STRING ,R_SCASW ,0 ,0 }, 00145 00146 /* 0xb0 - 0xb7 */ 00147 {L_Ib ,0 ,S_REGb ,REGI_AL},{L_Ib ,0 ,S_REGb ,REGI_CL}, 00148 {L_Ib ,0 ,S_REGb ,REGI_DL},{L_Ib ,0 ,S_REGb ,REGI_BL}, 00149 {L_Ib ,0 ,S_REGb ,REGI_AH},{L_Ib ,0 ,S_REGb ,REGI_CH}, 00150 {L_Ib ,0 ,S_REGb ,REGI_DH},{L_Ib ,0 ,S_REGb ,REGI_BH}, 00151 /* 0xb8 - 0xbf */ 00152 {L_Iw ,0 ,S_REGw ,REGI_AX},{L_Iw ,0 ,S_REGw ,REGI_CX}, 00153 {L_Iw ,0 ,S_REGw ,REGI_DX},{L_Iw ,0 ,S_REGw ,REGI_BX}, 00154 {L_Iw ,0 ,S_REGw ,REGI_SP},{L_Iw ,0 ,S_REGw ,REGI_BP}, 00155 {L_Iw ,0 ,S_REGw ,REGI_SI},{L_Iw ,0 ,S_REGw ,REGI_DI}, 00156 00157 /* 0xc0 - 0xc7 */ 00158 {L_MODRM ,5 ,0 ,M_SHIFT_Ib },{L_MODRM ,6 ,0 ,M_SHIFT_Ib }, 00159 {L_POPw ,0 ,S_IPIw ,0 },{L_POPw ,0 ,S_IP ,0 }, 00160 {L_MODRM ,O_SEGES ,S_SEGGw,M_Efw },{L_MODRM ,O_SEGDS ,S_SEGGw,M_Efw }, 00161 {L_MODRM ,0 ,S_Eb ,M_Ib },{L_MODRM ,0 ,S_Ew ,M_Iw }, 00162 /* 0xc8 - 0xcf */ 00163 {D_ENTERw ,0 ,0 ,0 },{D_LEAVEw ,0 ,0 ,0 }, 00164 {D_RETFwIw ,0 ,0 ,0 },{D_RETFw ,0 ,0 ,0 }, 00165 {L_VAL ,O_INT ,0 ,3 },{L_Ib ,O_INT ,0 ,0 }, 00166 {L_INTO ,O_INT ,0 ,0 },{D_IRETw ,0 ,0 ,0 }, 00167 00168 /* 0xd0 - 0xd7 */ 00169 {L_MODRM ,5 ,0 ,M_SHIFT_1 },{L_MODRM ,6 ,0 ,M_SHIFT_1 }, 00170 {L_MODRM ,5 ,0 ,M_SHIFT_CL },{L_MODRM ,6 ,0 ,M_SHIFT_CL }, 00171 {L_Ib ,O_AAM ,0 ,0 },{L_Ib ,O_AAD ,0 ,0 }, 00172 {D_SETALC ,0 ,0 ,0 },{D_XLAT ,0 ,0 ,0 }, 00173 //TODO FPU 00174 /* 0xd8 - 0xdf */ 00175 {L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,1 ,0 }, 00176 {L_MODRM ,O_FPU ,2 ,0 },{L_MODRM ,O_FPU ,3 ,0 }, 00177 {L_MODRM ,O_FPU ,4 ,0 },{L_MODRM ,O_FPU ,5 ,0 }, 00178 {L_MODRM ,O_FPU ,6 ,0 },{L_MODRM ,O_FPU ,7 ,0 }, 00179 00180 /* 0xe0 - 0xe7 */ 00181 {L_Ibx ,O_LOOPNZ ,S_AIPw ,0 },{L_Ibx ,O_LOOPZ ,S_AIPw ,0 }, 00182 {L_Ibx ,O_LOOP ,S_AIPw ,0 },{L_Ibx ,O_JCXZ ,S_AIPw ,0 }, 00183 {L_Ib ,O_INb ,0 ,0 },{L_Ib ,O_INw ,0 ,0 }, 00184 {L_Ib ,O_OUTb ,0 ,0 },{L_Ib ,O_OUTw ,0 ,0 }, 00185 /* 0xe8 - 0xef */ 00186 {L_Iw ,O_CALLNw ,S_AIPw ,0 },{L_Iwx ,0 ,S_AIPw ,0 }, 00187 {L_Ifw ,O_JMPFw ,0 ,0 },{L_Ibx ,0 ,S_AIPw ,0 }, 00188 {L_REGw ,O_INb ,0 ,REGI_DX},{L_REGw ,O_INw ,0 ,REGI_DX}, 00189 {L_REGw ,O_OUTb ,0 ,REGI_DX},{L_REGw ,O_OUTw ,0 ,REGI_DX}, 00190 00191 /* 0xf0 - 0xf7 */ 00192 {D_LOCK ,0 ,0 ,0 },{D_ICEBP ,0 ,0 ,0 }, 00193 {L_PREREPNE ,0 ,0 ,0 },{L_PREREP ,0 ,0 ,0 }, 00194 {D_HLT ,0 ,0 ,0 },{D_CMC ,0 ,0 ,0 }, 00195 {L_MODRM ,8 ,0 ,M_GRP },{L_MODRM ,9 ,0 ,M_GRP }, 00196 /* 0xf8 - 0xff */ 00197 {D_CLC ,0 ,0 ,0 },{D_STC ,0 ,0 ,0 }, 00198 {D_CLI ,0 ,0 ,0 },{D_STI ,0 ,0 ,0 }, 00199 {D_CLD ,0 ,0 ,0 },{D_STD ,0 ,0 ,0 }, 00200 {L_MODRM ,0xb ,0 ,M_GRP },{L_MODRM ,0xc ,0 ,M_GRP }, 00201 00202 /* 0x100 - 0x107 */ 00203 {L_MODRM ,O_GRP6w ,S_Ew ,M_Ew },{L_MODRM ,O_GRP7w ,S_Ew ,M_Ew }, 00204 {L_MODRM_NVM ,O_LAR ,S_Gw ,M_EwGw },{L_MODRM_NVM ,O_LSL ,S_Gw ,M_EwGw }, 00205 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00206 {D_CLTS ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00207 /* 0x108 - 0x10f */ 00208 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00209 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00210 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00211 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00212 00213 /* 0x110 - 0x117 */ 00214 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00215 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00216 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00217 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00218 /* 0x118 - 0x11f */ 00219 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00220 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00221 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00222 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00223 00224 /* 0x120 - 0x127 */ 00225 {L_MODRM ,O_M_Rd_CRx ,S_Ed ,0 },{L_MODRM ,O_M_Rd_DRx ,S_Ed ,0 }, 00226 {L_MODRM ,O_M_CRx_Rd ,0 ,M_Ed },{L_MODRM ,O_M_DRx_Rd ,0 ,M_Ed }, 00227 {L_MODRM ,O_M_Rd_TRx ,S_Ed ,0 },{0 ,0 ,0 ,0 }, 00228 {L_MODRM ,O_M_TRx_Rd ,0 ,M_Ed },{0 ,0 ,0 ,0 }, 00229 00230 /* 0x128 - 0x12f */ 00231 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00232 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00233 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00234 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00235 00236 /* 0x130 - 0x137 */ 00237 {0 ,0 ,0 ,0 },{D_RDTSC ,0 ,0 ,0 }, 00238 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00239 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00240 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00241 /* 0x138 - 0x13f */ 00242 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00243 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00244 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00245 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00246 00247 /* 0x140 - 0x147 */ 00248 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00249 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00250 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00251 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00252 /* 0x148 - 0x14f */ 00253 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00254 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00255 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00256 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00257 00258 /* 0x150 - 0x157 */ 00259 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00260 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00261 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00262 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00263 /* 0x158 - 0x15f */ 00264 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00265 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00266 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00267 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00268 00269 /* 0x160 - 0x167 */ 00270 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00271 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00272 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00273 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00274 /* 0x168 - 0x16f */ 00275 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00276 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00277 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00278 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00279 00280 00281 /* 0x170 - 0x177 */ 00282 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00283 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00284 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00285 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00286 /* 0x178 - 0x17f */ 00287 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00288 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00289 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00290 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00291 00292 /* 0x180 - 0x187 */ 00293 {L_Iwx ,O_C_O ,S_C_AIPw,0 },{L_Iwx ,O_C_NO ,S_C_AIPw,0 }, 00294 {L_Iwx ,O_C_B ,S_C_AIPw,0 },{L_Iwx ,O_C_NB ,S_C_AIPw,0 }, 00295 {L_Iwx ,O_C_Z ,S_C_AIPw,0 },{L_Iwx ,O_C_NZ ,S_C_AIPw,0 }, 00296 {L_Iwx ,O_C_BE ,S_C_AIPw,0 },{L_Iwx ,O_C_NBE ,S_C_AIPw,0 }, 00297 /* 0x188 - 0x18f */ 00298 {L_Iwx ,O_C_S ,S_C_AIPw,0 },{L_Iwx ,O_C_NS ,S_C_AIPw,0 }, 00299 {L_Iwx ,O_C_P ,S_C_AIPw,0 },{L_Iwx ,O_C_NP ,S_C_AIPw,0 }, 00300 {L_Iwx ,O_C_L ,S_C_AIPw,0 },{L_Iwx ,O_C_NL ,S_C_AIPw,0 }, 00301 {L_Iwx ,O_C_LE ,S_C_AIPw,0 },{L_Iwx ,O_C_NLE ,S_C_AIPw,0 }, 00302 00303 /* 0x190 - 0x197 */ 00304 {L_MODRM ,O_C_O ,S_C_Eb,0 },{L_MODRM ,O_C_NO ,S_C_Eb,0 }, 00305 {L_MODRM ,O_C_B ,S_C_Eb,0 },{L_MODRM ,O_C_NB ,S_C_Eb,0 }, 00306 {L_MODRM ,O_C_Z ,S_C_Eb,0 },{L_MODRM ,O_C_NZ ,S_C_Eb,0 }, 00307 {L_MODRM ,O_C_BE ,S_C_Eb,0 },{L_MODRM ,O_C_NBE ,S_C_Eb,0 }, 00308 /* 0x198 - 0x19f */ 00309 {L_MODRM ,O_C_S ,S_C_Eb,0 },{L_MODRM ,O_C_NS ,S_C_Eb,0 }, 00310 {L_MODRM ,O_C_P ,S_C_Eb,0 },{L_MODRM ,O_C_NP ,S_C_Eb,0 }, 00311 {L_MODRM ,O_C_L ,S_C_Eb,0 },{L_MODRM ,O_C_NL ,S_C_Eb,0 }, 00312 {L_MODRM ,O_C_LE ,S_C_Eb,0 },{L_MODRM ,O_C_NLE ,S_C_Eb,0 }, 00313 00314 /* 0x1a0 - 0x1a7 */ 00315 {L_SEG ,0 ,S_PUSHw ,fs },{D_POPSEGw,0 ,0 ,fs }, 00316 {D_CPUID ,0 ,0 ,0 },{L_MODRM ,O_BTw ,S_Ew ,M_EwGwt }, 00317 {L_MODRM ,O_DSHLw ,S_Ew,M_EwGwIb },{L_MODRM ,O_DSHLw ,S_Ew ,M_EwGwCL }, 00318 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00319 /* 0x1a8 - 0x1af */ 00320 {L_SEG ,0 ,S_PUSHw ,gs },{D_POPSEGw,0 ,0 ,gs }, 00321 {0 ,0 ,0 ,0 },{L_MODRM ,O_BTSw ,S_Ew ,M_EwGwt }, 00322 {L_MODRM ,O_DSHRw ,S_Ew,M_EwGwIb },{L_MODRM ,O_DSHRw ,S_Ew ,M_EwGwCL }, 00323 {0 ,0 ,0 ,0 },{L_MODRM ,O_IMULRw ,S_Gw ,M_EwxGwx }, 00324 00325 /* 0x1b0 - 0x1b7 */ 00326 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00327 {L_MODRM ,O_SEGSS ,S_SEGGw,M_Efw },{L_MODRM ,O_BTRw ,S_Ew ,M_EwGwt }, 00328 {L_MODRM ,O_SEGFS ,S_SEGGw,M_Efw },{L_MODRM ,O_SEGGS ,S_SEGGw,M_Efw }, 00329 {L_MODRM ,0 ,S_Gw ,M_Eb },{L_MODRM ,0 ,S_Gw ,M_Ew }, 00330 /* 0x1b8 - 0x1bf */ 00331 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00332 {L_MODRM ,0xe ,0 ,M_GRP },{L_MODRM ,O_BTCw ,S_Ew ,M_EwGwt }, 00333 {L_MODRM ,O_BSFw ,S_Gw ,M_Ew },{L_MODRM ,O_BSRw ,S_Gw ,M_Ew }, 00334 {L_MODRM ,0 ,S_Gw ,M_Ebx },{L_MODRM ,0 ,S_Gw ,M_Ewx }, 00335 00336 /* 0x1c0 - 0x1cc */ 00337 {L_MODRM ,t_ADDb ,S_EbGb ,M_GbEb },{L_MODRM ,t_ADDw ,S_EwGw ,M_GwEw }, 00338 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00339 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00340 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00341 /* 0x1c8 - 0x1cf */ 00342 {L_REGw ,O_BSWAPw ,S_REGw ,REGI_AX},{L_REGw ,O_BSWAPw ,S_REGw ,REGI_CX}, 00343 {L_REGw ,O_BSWAPw ,S_REGw ,REGI_DX},{L_REGw ,O_BSWAPw ,S_REGw ,REGI_BX}, 00344 {L_REGw ,O_BSWAPw ,S_REGw ,REGI_SP},{L_REGw ,O_BSWAPw ,S_REGw ,REGI_BP}, 00345 {L_REGw ,O_BSWAPw ,S_REGw ,REGI_SI},{L_REGw ,O_BSWAPw ,S_REGw ,REGI_DI}, 00346 00347 /* 0x1d0 - 0x1d7 */ 00348 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00349 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00350 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00351 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00352 /* 0x1d8 - 0x1df */ 00353 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00354 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00355 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00356 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00357 00358 /* 0x1e0 - 0x1ee */ 00359 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00360 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00361 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00362 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00363 /* 0x1e8 - 0x1ef */ 00364 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00365 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00366 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00367 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00368 00369 /* 0x1f0 - 0x1fc */ 00370 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00371 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00372 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00373 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00374 /* 0x1f8 - 0x1ff */ 00375 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00376 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00377 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00378 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00379 00380 00381 /* 0x200 - 0x207 */ 00382 {L_MODRM ,t_ADDb ,S_Eb ,M_EbGb },{L_MODRM ,t_ADDd ,S_Ed ,M_EdGd }, 00383 {L_MODRM ,t_ADDb ,S_Gb ,M_GbEb },{L_MODRM ,t_ADDd ,S_Gd ,M_GdEd }, 00384 {L_REGbIb ,t_ADDb ,S_REGb ,REGI_AL },{L_REGdId ,t_ADDd ,S_REGd ,REGI_AX }, 00385 {L_SEG ,0 ,S_PUSHd,es },{D_POPSEGd,0 ,0 ,es }, 00386 /* 0x208 - 0x20f */ 00387 {L_MODRM ,t_ORb ,S_Eb ,M_EbGb },{L_MODRM ,t_ORd ,S_Ed ,M_EdGd }, 00388 {L_MODRM ,t_ORb ,S_Gb ,M_GbEb },{L_MODRM ,t_ORd ,S_Gd ,M_GdEd }, 00389 {L_REGbIb ,t_ORb ,S_REGb ,REGI_AL },{L_REGdId ,t_ORd ,S_REGd ,REGI_AX }, 00390 {L_SEG ,0 ,S_PUSHd,cs },{L_DOUBLE ,0 ,0 ,0 }, 00391 00392 /* 0x210 - 0x217 */ 00393 {L_MODRM ,t_ADCb ,S_Eb ,M_EbGb },{L_MODRM ,t_ADCd ,S_Ed ,M_EdGd }, 00394 {L_MODRM ,t_ADCb ,S_Gb ,M_GbEb },{L_MODRM ,t_ADCd ,S_Gd ,M_GdEd }, 00395 {L_REGbIb ,t_ADCb ,S_REGb ,REGI_AL },{L_REGdId ,t_ADCd ,S_REGd ,REGI_AX }, 00396 {L_SEG ,0 ,S_PUSHd,ss },{D_POPSEGd,0 ,0 ,ss }, 00397 /* 0x218 - 0x21f */ 00398 {L_MODRM ,t_SBBb ,S_Eb ,M_EbGb },{L_MODRM ,t_SBBd ,S_Ed ,M_EdGd }, 00399 {L_MODRM ,t_SBBb ,S_Gb ,M_GbEb },{L_MODRM ,t_SBBd ,S_Gd ,M_GdEd }, 00400 {L_REGbIb ,t_SBBb ,S_REGb ,REGI_AL },{L_REGdId ,t_SBBd ,S_REGd ,REGI_AX }, 00401 {L_SEG ,0 ,S_PUSHd,ds },{D_POPSEGd,0 ,0 ,ds }, 00402 00403 /* 0x220 - 0x227 */ 00404 {L_MODRM ,t_ANDb ,S_Eb ,M_EbGb },{L_MODRM ,t_ANDd ,S_Ed ,M_EdGd }, 00405 {L_MODRM ,t_ANDb ,S_Gb ,M_GbEb },{L_MODRM ,t_ANDd ,S_Gd ,M_GdEd }, 00406 {L_REGbIb ,t_ANDb ,S_REGb ,REGI_AL },{L_REGdId ,t_ANDd ,S_REGd ,REGI_AX }, 00407 {L_PRESEG ,0 ,0 ,es },{D_DAA ,0 ,0 ,0 }, 00408 /* 0x228 - 0x22f */ 00409 {L_MODRM ,t_SUBb ,S_Eb ,M_EbGb },{L_MODRM ,t_SUBd ,S_Ed ,M_EdGd }, 00410 {L_MODRM ,t_SUBb ,S_Gb ,M_GbEb },{L_MODRM ,t_SUBd ,S_Gd ,M_GdEd }, 00411 {L_REGbIb ,t_SUBb ,S_REGb ,REGI_AL },{L_REGdId ,t_SUBd ,S_REGd ,REGI_AX }, 00412 {L_PRESEG ,0 ,0 ,cs },{D_DAS ,0 ,0 ,0 }, 00413 00414 /* 0x230 - 0x237 */ 00415 {L_MODRM ,t_XORb ,S_Eb ,M_EbGb },{L_MODRM ,t_XORd ,S_Ed ,M_EdGd }, 00416 {L_MODRM ,t_XORb ,S_Gb ,M_GbEb },{L_MODRM ,t_XORd ,S_Gd ,M_GdEd }, 00417 {L_REGbIb ,t_XORb ,S_REGb ,REGI_AL },{L_REGdId ,t_XORd ,S_REGd ,REGI_AX }, 00418 {L_PRESEG ,0 ,0 ,ss },{D_AAA ,0 ,0 ,0 }, 00419 /* 0x238 - 0x23f */ 00420 {L_MODRM ,t_CMPb ,0 ,M_EbGb },{L_MODRM ,t_CMPd ,0 ,M_EdGd }, 00421 {L_MODRM ,t_CMPb ,0 ,M_GbEb },{L_MODRM ,t_CMPd ,0 ,M_GdEd }, 00422 {L_REGbIb ,t_CMPb ,0 ,REGI_AL },{L_REGdId ,t_CMPd ,0 ,REGI_AX }, 00423 {L_PRESEG ,0 ,0 ,ds },{D_AAS ,0 ,0 ,0 }, 00424 00425 /* 0x240 - 0x247 */ 00426 {L_REGd ,t_INCd ,S_REGd ,REGI_AX},{L_REGd ,t_INCd ,S_REGd ,REGI_CX}, 00427 {L_REGd ,t_INCd ,S_REGd ,REGI_DX},{L_REGd ,t_INCd ,S_REGd ,REGI_BX}, 00428 {L_REGd ,t_INCd ,S_REGd ,REGI_SP},{L_REGd ,t_INCd ,S_REGd ,REGI_BP}, 00429 {L_REGd ,t_INCd ,S_REGd ,REGI_SI},{L_REGd ,t_INCd ,S_REGd ,REGI_DI}, 00430 /* 0x248 - 0x24f */ 00431 {L_REGd ,t_DECd ,S_REGd ,REGI_AX},{L_REGd ,t_DECd ,S_REGd ,REGI_CX}, 00432 {L_REGd ,t_DECd ,S_REGd ,REGI_DX},{L_REGd ,t_DECd ,S_REGd ,REGI_BX}, 00433 {L_REGd ,t_DECd ,S_REGd ,REGI_SP},{L_REGd ,t_DECd ,S_REGd ,REGI_BP}, 00434 {L_REGd ,t_DECd ,S_REGd ,REGI_SI},{L_REGd ,t_DECd ,S_REGd ,REGI_DI}, 00435 00436 /* 0x250 - 0x257 */ 00437 {L_REGd ,0 ,S_PUSHd,REGI_AX},{L_REGd ,0 ,S_PUSHd,REGI_CX}, 00438 {L_REGd ,0 ,S_PUSHd,REGI_DX},{L_REGd ,0 ,S_PUSHd,REGI_BX}, 00439 {L_REGd ,0 ,S_PUSHd,REGI_SP},{L_REGd ,0 ,S_PUSHd,REGI_BP}, 00440 {L_REGd ,0 ,S_PUSHd,REGI_SI},{L_REGd ,0 ,S_PUSHd,REGI_DI}, 00441 /* 0x258 - 0x25f */ 00442 {L_POPd ,0 ,S_REGd ,REGI_AX},{L_POPd ,0 ,S_REGd ,REGI_CX}, 00443 {L_POPd ,0 ,S_REGd ,REGI_DX},{L_POPd ,0 ,S_REGd ,REGI_BX}, 00444 {L_POPd ,0 ,S_REGd ,REGI_SP},{L_POPd ,0 ,S_REGd ,REGI_BP}, 00445 {L_POPd ,0 ,S_REGd ,REGI_SI},{L_POPd ,0 ,S_REGd ,REGI_DI}, 00446 00447 /* 0x260 - 0x267 */ 00448 {D_PUSHAd ,0 ,0 ,0 },{D_POPAd ,0 ,0 ,0 }, 00449 {L_MODRM ,O_BOUNDd ,0 ,0 },{0 ,0 ,0 ,0 }, 00450 {L_PRESEG ,0 ,0 ,fs },{L_PRESEG ,0 ,0 ,gs }, 00451 {L_PREOP ,0 ,0 ,0 },{L_PREADD ,0 ,0 ,0 }, 00452 /* 0x268 - 0x26f */ 00453 {L_Id ,0 ,S_PUSHd,0 },{L_MODRM ,O_IMULRd ,S_Gd ,M_EdId}, 00454 {L_Ibx ,0 ,S_PUSHd,0 },{L_MODRM ,O_IMULRd ,S_Gd ,M_EdIbx}, 00455 {L_STRING ,R_INSB ,0 ,0 },{L_STRING ,R_INSD ,0 ,0 }, 00456 {L_STRING ,R_OUTSB ,0 ,0 },{L_STRING ,R_OUTSD ,0 ,0 }, 00457 00458 /* 0x270 - 0x277 */ 00459 {L_Ibx ,O_C_O ,S_C_AIPd,0 },{L_Ibx ,O_C_NO ,S_C_AIPd,0 }, 00460 {L_Ibx ,O_C_B ,S_C_AIPd,0 },{L_Ibx ,O_C_NB ,S_C_AIPd,0 }, 00461 {L_Ibx ,O_C_Z ,S_C_AIPd,0 },{L_Ibx ,O_C_NZ ,S_C_AIPd,0 }, 00462 {L_Ibx ,O_C_BE ,S_C_AIPd,0 },{L_Ibx ,O_C_NBE ,S_C_AIPd,0 }, 00463 /* 0x278 - 0x27f */ 00464 {L_Ibx ,O_C_S ,S_C_AIPd,0 },{L_Ibx ,O_C_NS ,S_C_AIPd,0 }, 00465 {L_Ibx ,O_C_P ,S_C_AIPd,0 },{L_Ibx ,O_C_NP ,S_C_AIPd,0 }, 00466 {L_Ibx ,O_C_L ,S_C_AIPd,0 },{L_Ibx ,O_C_NL ,S_C_AIPd,0 }, 00467 {L_Ibx ,O_C_LE ,S_C_AIPd,0 },{L_Ibx ,O_C_NLE ,S_C_AIPd,0 }, 00468 00469 /* 0x280 - 0x287 */ 00470 {L_MODRM ,0 ,0 ,M_GRP },{L_MODRM ,2 ,0 ,M_GRP }, 00471 {L_MODRM ,0 ,0 ,M_GRP },{L_MODRM ,4 ,0 ,M_GRP }, 00472 {L_MODRM ,t_TESTb ,0 ,M_EbGb },{L_MODRM ,t_TESTd ,0 ,M_EdGd }, 00473 {L_MODRM ,0 ,S_EbGb ,M_GbEb },{L_MODRM ,0 ,S_EdGd ,M_GdEd }, 00474 /* 0x288 - 0x28f */ 00475 {L_MODRM ,0 ,S_Eb ,M_Gb },{L_MODRM ,0 ,S_Ed ,M_Gd }, 00476 {L_MODRM ,0 ,S_Gb ,M_Eb },{L_MODRM ,0 ,S_Gd ,M_Ed }, 00477 {L_MODRM ,0 ,S_EdMw ,M_SEG },{L_MODRM ,0 ,S_Gd ,M_EA }, 00478 {L_MODRM ,0 ,S_SEGm ,M_Ew },{L_POPdRM ,0 ,S_Ed ,M_None }, 00479 00480 /* 0x290 - 0x297 */ 00481 {D_NOP ,0 ,0 ,0 },{L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_CX}, 00482 {L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_DX},{L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_BX}, 00483 {L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_SP},{L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_BP}, 00484 {L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_SI},{L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_DI}, 00485 /* 0x298 - 0x29f */ 00486 {D_CWDE ,0 ,0 ,0 },{D_CDQ ,0 ,0 ,0 }, 00487 {L_Ifd ,O_CALLFd ,0 ,0 },{D_WAIT ,0 ,0 ,0 }, 00488 {D_PUSHF ,0 ,0 ,true },{D_POPF ,0 ,0 ,true }, 00489 {D_SAHF ,0 ,0 ,0 },{D_LAHF ,0 ,0 ,0 }, 00490 00491 /* 0x2a0 - 0x2a7 */ 00492 {L_OP ,O_ALOP ,0 ,0 },{L_OP ,O_EAXOP ,0 ,0 }, 00493 {L_OP ,O_OPAL ,0 ,0 },{L_OP ,O_OPEAX ,0 ,0 }, 00494 {L_STRING ,R_MOVSB ,0 ,0 },{L_STRING ,R_MOVSD ,0 ,0 }, 00495 {L_STRING ,R_CMPSB ,0 ,0 },{L_STRING ,R_CMPSD ,0 ,0 }, 00496 /* 0x2a8 - 0x2af */ 00497 {L_REGbIb ,t_TESTb ,0 ,REGI_AL},{L_REGdId ,t_TESTd ,0 ,REGI_AX}, 00498 {L_STRING ,R_STOSB ,0 ,0 },{L_STRING ,R_STOSD ,0 ,0 }, 00499 {L_STRING ,R_LODSB ,0 ,0 },{L_STRING ,R_LODSD ,0 ,0 }, 00500 {L_STRING ,R_SCASB ,0 ,0 },{L_STRING ,R_SCASD ,0 ,0 }, 00501 00502 /* 0x2b0 - 0x2b7 */ 00503 {L_Ib ,0 ,S_REGb ,REGI_AL},{L_Ib ,0 ,S_REGb ,REGI_CL}, 00504 {L_Ib ,0 ,S_REGb ,REGI_DL},{L_Ib ,0 ,S_REGb ,REGI_BL}, 00505 {L_Ib ,0 ,S_REGb ,REGI_AH},{L_Ib ,0 ,S_REGb ,REGI_CH}, 00506 {L_Ib ,0 ,S_REGb ,REGI_DH},{L_Ib ,0 ,S_REGb ,REGI_BH}, 00507 /* 0x2b8 - 0x2bf */ 00508 {L_Id ,0 ,S_REGd ,REGI_AX},{L_Id ,0 ,S_REGd ,REGI_CX}, 00509 {L_Id ,0 ,S_REGd ,REGI_DX},{L_Id ,0 ,S_REGd ,REGI_BX}, 00510 {L_Id ,0 ,S_REGd ,REGI_SP},{L_Id ,0 ,S_REGd ,REGI_BP}, 00511 {L_Id ,0 ,S_REGd ,REGI_SI},{L_Id ,0 ,S_REGd ,REGI_DI}, 00512 00513 /* 0x2c0 - 0x2c7 */ 00514 {L_MODRM ,5 ,0 ,M_SHIFT_Ib },{L_MODRM ,7 ,0 ,M_SHIFT_Ib }, 00515 {L_POPd ,0 ,S_IPIw ,0 },{L_POPd ,0 ,S_IP ,0 }, 00516 {L_MODRM ,O_SEGES ,S_SEGGd,M_Efd },{L_MODRM ,O_SEGDS ,S_SEGGd,M_Efd }, 00517 {L_MODRM ,0 ,S_Eb ,M_Ib },{L_MODRM ,0 ,S_Ed ,M_Id }, 00518 /* 0x2c8 - 0x2cf */ 00519 {D_ENTERd ,0 ,0 ,0 },{D_LEAVEd ,0 ,0 ,0 }, 00520 {D_RETFdIw ,0 ,0 ,0 },{D_RETFd ,0 ,0 ,0 }, 00521 {L_VAL ,O_INT ,0 ,3 },{L_Ib ,O_INT ,0 ,0 }, 00522 {L_INTO ,O_INT ,0 ,0 },{D_IRETd ,0 ,0 ,0 }, 00523 00524 /* 0x2d0 - 0x2d7 */ 00525 {L_MODRM ,5 ,0 ,M_SHIFT_1 },{L_MODRM ,7 ,0 ,M_SHIFT_1 }, 00526 {L_MODRM ,5 ,0 ,M_SHIFT_CL },{L_MODRM ,7 ,0 ,M_SHIFT_CL }, 00527 {L_Ib ,O_AAM ,0 ,0 },{L_Ib ,O_AAD ,0 ,0 }, 00528 {D_SETALC ,0 ,0 ,0 },{D_XLAT ,0 ,0 ,0 }, 00529 /* 0x2d8 - 0x2df */ 00530 {L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,1 ,0 }, 00531 {L_MODRM ,O_FPU ,2 ,0 },{L_MODRM ,O_FPU ,3 ,0 }, 00532 {L_MODRM ,O_FPU ,4 ,0 },{L_MODRM ,O_FPU ,5 ,0 }, 00533 {L_MODRM ,O_FPU ,6 ,0 },{L_MODRM ,O_FPU ,7 ,0 }, 00534 00535 /* 0x2e0 - 0x2e7 */ 00536 {L_Ibx ,O_LOOPNZ ,S_AIPd ,0 },{L_Ibx ,O_LOOPZ ,S_AIPd ,0 }, 00537 {L_Ibx ,O_LOOP ,S_AIPd ,0 },{L_Ibx ,O_JCXZ ,S_AIPd ,0 }, 00538 {L_Ib ,O_INb ,0 ,0 },{L_Ib ,O_INd ,0 ,0 }, 00539 {L_Ib ,O_OUTb ,0 ,0 },{L_Ib ,O_OUTd ,0 ,0 }, 00540 /* 0x2e8 - 0x2ef */ 00541 {L_Id ,O_CALLNd ,S_AIPd ,0 },{L_Idx ,0 ,S_AIPd ,0 }, 00542 {L_Ifd ,O_JMPFd ,0 ,0 },{L_Ibx ,0 ,S_AIPd ,0 }, 00543 {L_REGw ,O_INb ,0 ,REGI_DX},{L_REGw ,O_INd ,0 ,REGI_DX}, 00544 {L_REGw ,O_OUTb ,0 ,REGI_DX},{L_REGw ,O_OUTd ,0 ,REGI_DX}, 00545 00546 /* 0x2f0 - 0x2f7 */ 00547 {D_LOCK ,0 ,0 ,0 },{D_ICEBP ,0 ,0 ,0 }, 00548 {L_PREREPNE ,0 ,0 ,0 },{L_PREREP ,0 ,0 ,0 }, 00549 {D_HLT ,0 ,0 ,0 },{D_CMC ,0 ,0 ,0 }, 00550 {L_MODRM ,8 ,0 ,M_GRP },{L_MODRM ,0xa ,0 ,M_GRP }, 00551 /* 0x2f8 - 0x2ff */ 00552 {D_CLC ,0 ,0 ,0 },{D_STC ,0 ,0 ,0 }, 00553 {D_CLI ,0 ,0 ,0 },{D_STI ,0 ,0 ,0 }, 00554 {D_CLD ,0 ,0 ,0 },{D_STD ,0 ,0 ,0 }, 00555 {L_MODRM ,0xb ,0 ,M_GRP },{L_MODRM ,0xd ,0 ,M_GRP }, 00556 00557 00558 /* 0x300 - 0x307 */ 00559 {L_MODRM ,O_GRP6d ,S_Ew ,M_Ew },{L_MODRM ,O_GRP7d ,S_Ew ,M_Ew }, 00560 {L_MODRM_NVM ,O_LAR ,S_Gd ,M_EdGd },{L_MODRM_NVM ,O_LSL ,S_Gd ,M_EdGd }, 00561 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00562 {D_CLTS ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00563 /* 0x308 - 0x30f */ 00564 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00565 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00566 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00567 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00568 00569 /* 0x310 - 0x317 */ 00570 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00571 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00572 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00573 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00574 /* 0x318 - 0x31f */ 00575 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00576 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00577 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00578 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00579 00580 /* 0x320 - 0x327 */ 00581 {L_MODRM ,O_M_Rd_CRx ,S_Ed ,0 },{L_MODRM ,O_M_Rd_DRx ,S_Ed ,0 }, 00582 {L_MODRM ,O_M_CRx_Rd ,0 ,M_Ed },{L_MODRM ,O_M_DRx_Rd ,0 ,M_Ed }, 00583 {L_MODRM ,O_M_Rd_TRx ,S_Ed ,0 },{0 ,0 ,0 ,0 }, 00584 {L_MODRM ,O_M_TRx_Rd ,0 ,M_Ed },{0 ,0 ,0 ,0 }, 00585 00586 /* 0x328 - 0x32f */ 00587 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00588 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00589 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00590 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00591 00592 /* 0x330 - 0x337 */ 00593 {0 ,0 ,0 ,0 },{D_RDTSC ,0 ,0 ,0 }, 00594 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00595 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00596 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00597 /* 0x338 - 0x33f */ 00598 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00599 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00600 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00601 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00602 00603 /* 0x340 - 0x347 */ 00604 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00605 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00606 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00607 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00608 /* 0x348 - 0x34f */ 00609 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00610 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00611 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00612 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00613 00614 /* 0x350 - 0x357 */ 00615 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00616 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00617 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00618 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00619 /* 0x358 - 0x35f */ 00620 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00621 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00622 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00623 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00624 00625 /* 0x360 - 0x367 */ 00626 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00627 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00628 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00629 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00630 /* 0x368 - 0x36f */ 00631 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00632 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00633 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00634 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00635 00636 00637 /* 0x370 - 0x377 */ 00638 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00639 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00640 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00641 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00642 /* 0x378 - 0x37f */ 00643 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00644 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00645 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00646 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00647 00648 /* 0x380 - 0x387 */ 00649 {L_Idx ,O_C_O ,S_C_AIPd,0 },{L_Idx ,O_C_NO ,S_C_AIPd,0 }, 00650 {L_Idx ,O_C_B ,S_C_AIPd,0 },{L_Idx ,O_C_NB ,S_C_AIPd,0 }, 00651 {L_Idx ,O_C_Z ,S_C_AIPd,0 },{L_Idx ,O_C_NZ ,S_C_AIPd,0 }, 00652 {L_Idx ,O_C_BE ,S_C_AIPd,0 },{L_Idx ,O_C_NBE ,S_C_AIPd,0 }, 00653 /* 0x388 - 0x38f */ 00654 {L_Idx ,O_C_S ,S_C_AIPd,0 },{L_Idx ,O_C_NS ,S_C_AIPd,0 }, 00655 {L_Idx ,O_C_P ,S_C_AIPd,0 },{L_Idx ,O_C_NP ,S_C_AIPd,0 }, 00656 {L_Idx ,O_C_L ,S_C_AIPd,0 },{L_Idx ,O_C_NL ,S_C_AIPd,0 }, 00657 {L_Idx ,O_C_LE ,S_C_AIPd,0 },{L_Idx ,O_C_NLE ,S_C_AIPd,0 }, 00658 00659 /* 0x390 - 0x397 */ 00660 {L_MODRM ,O_C_O ,S_C_Eb,0 },{L_MODRM ,O_C_NO ,S_C_Eb,0 }, 00661 {L_MODRM ,O_C_B ,S_C_Eb,0 },{L_MODRM ,O_C_NB ,S_C_Eb,0 }, 00662 {L_MODRM ,O_C_Z ,S_C_Eb,0 },{L_MODRM ,O_C_NZ ,S_C_Eb,0 }, 00663 {L_MODRM ,O_C_BE ,S_C_Eb,0 },{L_MODRM ,O_C_NBE ,S_C_Eb,0 }, 00664 /* 0x398 - 0x39f */ 00665 {L_MODRM ,O_C_S ,S_C_Eb,0 },{L_MODRM ,O_C_NS ,S_C_Eb,0 }, 00666 {L_MODRM ,O_C_P ,S_C_Eb,0 },{L_MODRM ,O_C_NP ,S_C_Eb,0 }, 00667 {L_MODRM ,O_C_L ,S_C_Eb,0 },{L_MODRM ,O_C_NL ,S_C_Eb,0 }, 00668 {L_MODRM ,O_C_LE ,S_C_Eb,0 },{L_MODRM ,O_C_NLE ,S_C_Eb,0 }, 00669 00670 /* 0x3a0 - 0x3a7 */ 00671 {L_SEG ,0 ,S_PUSHd ,fs },{D_POPSEGd,0 ,0 ,fs }, 00672 {D_CPUID ,0 ,0 ,0 },{L_MODRM ,O_BTd ,S_Ed ,M_EdGdt }, 00673 {L_MODRM ,O_DSHLd ,S_Ed,M_EdGdIb },{L_MODRM ,O_DSHLd ,S_Ed ,M_EdGdCL }, 00674 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00675 /* 0x3a8 - 0x3af */ 00676 {L_SEG ,0 ,S_PUSHd ,gs },{D_POPSEGd,0 ,0 ,gs }, 00677 {0 ,0 ,0 ,0 },{L_MODRM ,O_BTSd ,S_Ed ,M_EdGdt }, 00678 {L_MODRM ,O_DSHRd ,S_Ed,M_EdGdIb },{L_MODRM ,O_DSHRd ,S_Ed ,M_EdGdCL }, 00679 {0 ,0 ,0 ,0 },{L_MODRM ,O_IMULRd ,S_Gd ,M_EdxGdx }, 00680 00681 /* 0x3b0 - 0x3b7 */ 00682 {0 ,0 ,0 ,0 },{L_MODRM ,O_CMPXCHG ,S_Ed ,M_Ed }, 00683 {L_MODRM ,O_SEGSS ,S_SEGGd,M_Efd },{L_MODRM ,O_BTRd ,S_Ed ,M_EdGdt }, 00684 {L_MODRM ,O_SEGFS ,S_SEGGd,M_Efd },{L_MODRM ,O_SEGGS ,S_SEGGd,M_Efd }, 00685 {L_MODRM ,0 ,S_Gd ,M_Eb },{L_MODRM ,0 ,S_Gd ,M_Ew }, 00686 /* 0x3b8 - 0x3bf */ 00687 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00688 {L_MODRM ,0xf ,0 ,M_GRP },{L_MODRM ,O_BTCd ,S_Ed ,M_EdGdt }, 00689 {L_MODRM ,O_BSFd ,S_Gd ,M_Ed },{L_MODRM ,O_BSRd ,S_Gd ,M_Ed }, 00690 {L_MODRM ,0 ,S_Gd ,M_Ebx },{L_MODRM ,0 ,S_Gd ,M_Ewx }, 00691 00692 /* 0x3c0 - 0x3cc */ 00693 {L_MODRM ,t_ADDb ,S_EbGb ,M_GbEb },{L_MODRM ,t_ADDd ,S_EdGd ,M_GdEd }, 00694 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00695 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00696 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00697 /* 0x3c8 - 0x3cf */ 00698 {L_REGd ,O_BSWAPd ,S_REGd ,REGI_AX},{L_REGd ,O_BSWAPd ,S_REGd ,REGI_CX}, 00699 {L_REGd ,O_BSWAPd ,S_REGd ,REGI_DX},{L_REGd ,O_BSWAPd ,S_REGd ,REGI_BX}, 00700 {L_REGd ,O_BSWAPd ,S_REGd ,REGI_SP},{L_REGd ,O_BSWAPd ,S_REGd ,REGI_BP}, 00701 {L_REGd ,O_BSWAPd ,S_REGd ,REGI_SI},{L_REGd ,O_BSWAPd ,S_REGd ,REGI_DI}, 00702 00703 /* 0x3d0 - 0x3d7 */ 00704 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00705 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00706 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00707 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00708 /* 0x3d8 - 0x3df */ 00709 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00710 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00711 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00712 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00713 00714 /* 0x3e0 - 0x3ee */ 00715 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00716 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00717 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00718 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00719 /* 0x3e8 - 0x3ef */ 00720 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00721 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00722 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00723 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00724 00725 /* 0x3f0 - 0x3fc */ 00726 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00727 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00728 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00729 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00730 /* 0x3f8 - 0x3ff */ 00731 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00732 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00733 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00734 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00735 00736 }; 00737 00738 static OpCode Groups[16][8]={ 00739 { /* 0x00 Group 1 Eb,Ib */ 00740 {0 ,t_ADDb ,S_Eb ,M_EbIb },{0 ,t_ORb ,S_Eb ,M_EbIb }, 00741 {0 ,t_ADCb ,S_Eb ,M_EbIb },{0 ,t_SBBb ,S_Eb ,M_EbIb }, 00742 {0 ,t_ANDb ,S_Eb ,M_EbIb },{0 ,t_SUBb ,S_Eb ,M_EbIb }, 00743 {0 ,t_XORb ,S_Eb ,M_EbIb },{0 ,t_CMPb ,0 ,M_EbIb }, 00744 },{ /* 0x01 Group 1 Ew,Iw */ 00745 {0 ,t_ADDw ,S_Ew ,M_EwIw },{0 ,t_ORw ,S_Ew ,M_EwIw }, 00746 {0 ,t_ADCw ,S_Ew ,M_EwIw },{0 ,t_SBBw ,S_Ew ,M_EwIw }, 00747 {0 ,t_ANDw ,S_Ew ,M_EwIw },{0 ,t_SUBw ,S_Ew ,M_EwIw }, 00748 {0 ,t_XORw ,S_Ew ,M_EwIw },{0 ,t_CMPw ,0 ,M_EwIw }, 00749 },{ /* 0x02 Group 1 Ed,Id */ 00750 {0 ,t_ADDd ,S_Ed ,M_EdId },{0 ,t_ORd ,S_Ed ,M_EdId }, 00751 {0 ,t_ADCd ,S_Ed ,M_EdId },{0 ,t_SBBd ,S_Ed ,M_EdId }, 00752 {0 ,t_ANDd ,S_Ed ,M_EdId },{0 ,t_SUBd ,S_Ed ,M_EdId }, 00753 {0 ,t_XORd ,S_Ed ,M_EdId },{0 ,t_CMPd ,0 ,M_EdId }, 00754 },{ /* 0x03 Group 1 Ew,Ibx */ 00755 {0 ,t_ADDw ,S_Ew ,M_EwIbx },{0 ,t_ORw ,S_Ew ,M_EwIbx }, 00756 {0 ,t_ADCw ,S_Ew ,M_EwIbx },{0 ,t_SBBw ,S_Ew ,M_EwIbx }, 00757 {0 ,t_ANDw ,S_Ew ,M_EwIbx },{0 ,t_SUBw ,S_Ew ,M_EwIbx }, 00758 {0 ,t_XORw ,S_Ew ,M_EwIbx },{0 ,t_CMPw ,0 ,M_EwIbx }, 00759 },{ /* 0x04 Group 1 Ed,Ibx */ 00760 {0 ,t_ADDd ,S_Ed ,M_EdIbx },{0 ,t_ORd ,S_Ed ,M_EdIbx }, 00761 {0 ,t_ADCd ,S_Ed ,M_EdIbx },{0 ,t_SBBd ,S_Ed ,M_EdIbx }, 00762 {0 ,t_ANDd ,S_Ed ,M_EdIbx },{0 ,t_SUBd ,S_Ed ,M_EdIbx }, 00763 {0 ,t_XORd ,S_Ed ,M_EdIbx },{0 ,t_CMPd ,0 ,M_EdIbx }, 00764 00765 },{ /* 0x05 Group 2 Eb,XXX */ 00766 {0 ,t_ROLb ,S_Eb ,M_Eb },{0 ,t_RORb ,S_Eb ,M_Eb }, 00767 {0 ,t_RCLb ,S_Eb ,M_Eb },{0 ,t_RCRb ,S_Eb ,M_Eb }, 00768 {0 ,t_SHLb ,S_Eb ,M_Eb },{0 ,t_SHRb ,S_Eb ,M_Eb }, 00769 {0 ,t_SHLb ,S_Eb ,M_Eb },{0 ,t_SARb ,S_Eb ,M_Eb }, 00770 },{ /* 0x06 Group 2 Ew,XXX */ 00771 {0 ,t_ROLw ,S_Ew ,M_Ew },{0 ,t_RORw ,S_Ew ,M_Ew }, 00772 {0 ,t_RCLw ,S_Ew ,M_Ew },{0 ,t_RCRw ,S_Ew ,M_Ew }, 00773 {0 ,t_SHLw ,S_Ew ,M_Ew },{0 ,t_SHRw ,S_Ew ,M_Ew }, 00774 {0 ,t_SHLw ,S_Ew ,M_Ew },{0 ,t_SARw ,S_Ew ,M_Ew }, 00775 },{ /* 0x07 Group 2 Ed,XXX */ 00776 {0 ,t_ROLd ,S_Ed ,M_Ed },{0 ,t_RORd ,S_Ed ,M_Ed }, 00777 {0 ,t_RCLd ,S_Ed ,M_Ed },{0 ,t_RCRd ,S_Ed ,M_Ed }, 00778 {0 ,t_SHLd ,S_Ed ,M_Ed },{0 ,t_SHRd ,S_Ed ,M_Ed }, 00779 {0 ,t_SHLd ,S_Ed ,M_Ed },{0 ,t_SARd ,S_Ed ,M_Ed }, 00780 00781 00782 },{ /* 0x08 Group 3 Eb */ 00783 {0 ,t_TESTb ,0 ,M_EbIb },{0 ,t_TESTb ,0 ,M_EbIb }, 00784 {0 ,O_NOT ,S_Eb ,M_Eb },{0 ,t_NEGb ,S_Eb ,M_Eb }, 00785 {0 ,O_MULb ,0 ,M_Eb },{0 ,O_IMULb ,0 ,M_Eb }, 00786 {0 ,O_DIVb ,0 ,M_Eb },{0 ,O_IDIVb ,0 ,M_Eb }, 00787 },{ /* 0x09 Group 3 Ew */ 00788 {0 ,t_TESTw ,0 ,M_EwIw },{0 ,t_TESTw ,0 ,M_EwIw }, 00789 {0 ,O_NOT ,S_Ew ,M_Ew },{0 ,t_NEGw ,S_Ew ,M_Ew }, 00790 {0 ,O_MULw ,0 ,M_Ew },{0 ,O_IMULw ,0 ,M_Ew }, 00791 {0 ,O_DIVw ,0 ,M_Ew },{0 ,O_IDIVw ,0 ,M_Ew }, 00792 },{ /* 0x0a Group 3 Ed */ 00793 {0 ,t_TESTd ,0 ,M_EdId },{0 ,t_TESTd ,0 ,M_EdId }, 00794 {0 ,O_NOT ,S_Ed ,M_Ed },{0 ,t_NEGd ,S_Ed ,M_Ed }, 00795 {0 ,O_MULd ,0 ,M_Ed },{0 ,O_IMULd ,0 ,M_Ed }, 00796 {0 ,O_DIVd ,0 ,M_Ed },{0 ,O_IDIVd ,0 ,M_Ed }, 00797 00798 },{ /* 0x0b Group 4 Eb */ 00799 {0 ,t_INCb ,S_Eb ,M_Eb },{0 ,t_DECb ,S_Eb ,M_Eb }, 00800 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00801 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00802 {0 ,0 ,0 ,0 },{0 ,O_CBACK ,0 ,M_Iw }, 00803 },{ /* 0x0c Group 5 Ew */ 00804 {0 ,t_INCw ,S_Ew ,M_Ew },{0 ,t_DECw ,S_Ew ,M_Ew }, 00805 {0 ,O_CALLNw ,S_IP ,M_Ew },{0 ,O_CALLFw ,0 ,M_Efw }, 00806 {0 ,0 ,S_IP ,M_Ew },{0 ,O_JMPFw ,0 ,M_Efw }, 00807 {0 ,0 ,S_PUSHw,M_Ew },{0 ,0 ,0 ,0 }, 00808 },{ /* 0x0d Group 5 Ed */ 00809 {0 ,t_INCd ,S_Ed ,M_Ed },{0 ,t_DECd ,S_Ed ,M_Ed }, 00810 {0 ,O_CALLNd ,S_IP ,M_Ed },{0 ,O_CALLFd ,0 ,M_Efd }, 00811 {0 ,0 ,S_IP ,M_Ed },{0 ,O_JMPFd ,0 ,M_Efd }, 00812 {0 ,0 ,S_PUSHd,M_Ed },{0 ,0 ,0 ,0 }, 00813 00814 00815 },{ /* 0x0e Group 8 Ew */ 00816 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00817 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00818 {0 ,O_BTw ,S_Ew ,M_EwIb },{0 ,O_BTSw ,S_Ew ,M_EwIb }, 00819 {0 ,O_BTRw ,S_Ew ,M_EwIb },{0 ,O_BTCw ,S_Ew ,M_EwIb }, 00820 },{ /* 0x0f Group 8 Ed */ 00821 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00822 {0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 }, 00823 {0 ,O_BTd ,S_Ed ,M_EdIb },{0 ,O_BTSd ,S_Ed ,M_EdIb }, 00824 {0 ,O_BTRd ,S_Ed ,M_EdIb },{0 ,O_BTCd ,S_Ed ,M_EdIb }, 00825 00826 00827 00828 } 00829 }; 00830 00831 00832