emu_cpu_itables.h

Go to the documentation of this file.
00001 /********************************************************************************
00002  *                               libemu
00003  *
00004  *                    - x86 shellcode emulation -
00005  *
00006  *
00007  * Copyright (C) 2007  Paul Baecher & Markus Koetter
00008  * 
00009  * This program is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU General Public License
00011  * as published by the Free Software Foundation; either version 2
00012  * of the License, or (at your option) any later version.
00013  * 
00014  * This program is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  * GNU General Public License for more details.
00018  * 
00019  * You should have received a copy of the GNU General Public License
00020  * along with this program; if not, write to the Free Software
00021  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00022  * 
00023  * 
00024  *             contact nepenthesdev@users.sourceforge.net  
00025  *
00026  *******************************************************************************/
00027 
00028 #ifndef HAVE_EMU_CPU_ITABLES_H
00029 #define HAVE_EMU_CPU_ITABLES_H
00030 
00031 // for i in $(seq 0 255); do printf "\t/* %02x */ {0, 0, {0, 0, 0, 0, 0, 0, 0}},\n" $i; done >> emu_cpu_itables.h */
00032 
00033 
00034 #include <emu/emu_cpu_functions.h>
00035 #include <emu/emu_cpu_instruction.h>
00036 
00037 #define II_SBIT 1
00038 #define II_WBIT 1
00039 
00040 #define II_XX_REG1_REG2 1
00041 #define II_MOD_REG_RM 2
00042 #define II_XX_YYY_REG 3
00043 #define II_MOD_YYY_RM 4
00044 #define II_UUUU_TTTN 5
00045 #define II_XX_SREG3_ZZ 6  
00046 
00047 #define II_IMM 1
00048 #define II_IMM8 2
00049 #define II_IMM16 3
00050 #define II_IMM32 4
00051 
00052 #define II_DISPF 1
00053 #define II_DISP8 2
00054 #define II_DISP16 3
00055 #define II_DISP32 4
00056 
00057 /*#define II_LEVEL8 1 -- implementation pending
00058 
00059 #define II_TYPE 1 -- impementation pending*/
00060 
00061 #define II_FPU_INSTR 1
00062 
00063 
00064 struct emu_cpu_instruction_info ii_onebyte[0x100] = {
00065         /* 00 */ {instr_add_00, "add", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00066         /* 01 */ {instr_add_01, "add", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00067         /* 02 */ {instr_add_02, "add", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00068         /* 03 */ {instr_add_03, "add", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00069         /* 04 */ {instr_add_04, "add", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00070         /* 05 */ {instr_add_05, "add", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00071         /* 06 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00072         /* 07 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00073         /* 08 */ {instr_or_08 , "or" , {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00074         /* 09 */ {instr_or_09 , "or" , {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00075         /* 0a */ {instr_or_0a , "or" , {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00076         /* 0b */ {instr_or_0b , "or" , {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00077         /* 0c */ {instr_or_0c , "or" , {0, 0, 0, II_IMM8, 0, 0, 0}},        
00078         /* 0d */ {instr_or_0d , "or" , {0, 0, 0, II_IMM, 0, 0, 0}},         
00079         /* 0e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00080         /* 0f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00081         /* 10 */ {instr_adc_10, "adc", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},   
00082         /* 11 */ {instr_adc_11, "adc", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},    
00083         /* 12 */ {instr_adc_12, "adc", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},   
00084         /* 13 */ {instr_adc_13, "adc", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},   
00085         /* 14 */ {instr_adc_14, "adc", {0, 0, 0, II_IMM8, 0, 0, 0}},         
00086         /* 15 */ {instr_adc_15, "adc", {0, 0, 0, II_IMM, 0, 0, 0}},          
00087         /* 16 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00088         /* 17 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00089         /* 18 */ {instr_sbb_18, "sbb", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00090         /* 19 */ {instr_sbb_19, "sbb", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00091         /* 1a */ {instr_sbb_1a, "sbb", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00092         /* 1b */ {instr_sbb_1b, "sbb", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00093         /* 1c */ {instr_sbb_1c, "sbb", {0, 0, 0, II_IMM8, 0, 0, 0}},               
00094         /* 1d */ {instr_sbb_1d, "sbb", {0, 0, 0, II_IMM, 0, 0, 0}},                
00095         /* 1e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00096         /* 1f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00097         /* 20 */ {instr_and_20, "and", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00098         /* 21 */ {instr_and_21, "and", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00099         /* 22 */ {instr_and_22, "and", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00100         /* 23 */ {instr_and_23, "and", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},  
00101         /* 24 */ {instr_and_24, "and", {0, 0, 0, II_IMM8, 0, 0, 0}},        
00102         /* 25 */ {instr_and_25, "and", {0, 0, 0, II_IMM, 0, 0, 0}},         
00103         /* 26 */ {prefix_fn, "ES:", {0, 0, 0, 0, 0, 0, 0, 0}},
00104         /* 27 */ {instr_daa_27, "daa", {0, 0, 0, 0, 0, 0, 0, 0}},
00105         /* 28 */ {instr_sub_28, "sub", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},     
00106         /* 29 */ {instr_sub_29, "sub", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},     
00107         /* 2a */ {instr_sub_2a, "sub", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},     
00108         /* 2b */ {instr_sub_2b, "sub", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},     
00109         /* 2c */ {instr_sub_2c, "sub", {0, 0, 0, II_IMM8, 0, 0, 0}},           
00110         /* 2d */ {instr_sub_2d, "sub", {0, 0, 0, II_IMM, 0, 0, 0}},            
00111         /* 2e */ {prefix_fn, "CS:", {0, 0, 0, 0, 0, 0, 0, 0}},
00112         /* 2f */ {instr_das_2f, "das", {0, 0, 0, 0, 0, 0, 0, 0}},
00113         /* 30 */ {instr_xor_30, "xor", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00114         /* 31 */ {instr_xor_31, "xor", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00115         /* 32 */ {instr_xor_32, "xor", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00116         /* 33 */ {instr_xor_33, "xor", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},         
00117         /* 34 */ {instr_xor_34, "xor", {0, 0, 0, II_IMM8, 0, 0, 0}},               
00118         /* 35 */ {instr_xor_35, "xor", {0, 0, 0, II_IMM, 0, 0, 0}},                
00119         /* 36 */ {prefix_fn, "SS:", {0, 0, 0, 0, 0, 0, 0, 0}},
00120         /* 37 */ {instr_aaa_37, "aaa", {0, 0, 0, 0, 0, 0, 0, 0}},
00121         /* 38 */ {instr_cmp_38, "cmp", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},       
00122         /* 39 */ {instr_cmp_39, "cmp", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},       
00123         /* 3a */ {instr_cmp_3a, "cmp", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},       
00124         /* 3b */ {instr_cmp_3b, "cmp", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0}},       
00125         /* 3c */ {instr_cmp_3c, "cmp", {0, 0, 0, II_IMM8, 0, 0, 0}},             
00126         /* 3d */ {instr_cmp_3d, "cmp", {0, 0, 0, II_IMM, 0, 0, 0}},              
00127         /* 3e */ {prefix_fn, "DS:", {0, 0, 0, 0, 0, 0, 0, 0}},
00128         /* 3f */ {instr_aas_3f, "aas", {0, 0, 0, 0, 0, 0, 0, 0}},
00129         /* 40 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00130         /* 41 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00131         /* 42 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00132         /* 43 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00133         /* 44 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00134         /* 45 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00135         /* 46 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00136         /* 47 */ {instr_inc_4x, "inc", {0, 0, 0, 0, 0, 0, 0, 0}},
00137         /* 48 */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00138         /* 49 */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00139         /* 4a */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00140         /* 4b */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00141         /* 4c */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00142         /* 4d */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00143         /* 4e */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00144         /* 4f */ {instr_dec_4x, "dec", {0, 0, 0, 0, 0, 0, 0, 0}},
00145         /* 50 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00146         /* 51 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00147         /* 52 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00148         /* 53 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00149         /* 54 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00150         /* 55 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00151         /* 56 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00152         /* 57 */ {instr_push_5x, "push", {0, 0, 0, 0, 0, 0, 0, 0}},
00153         /* 58 */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00154         /* 59 */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00155         /* 5a */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00156         /* 5b */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00157         /* 5c */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00158         /* 5d */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00159         /* 5e */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00160         /* 5f */ {instr_pop_5x, "pop", {0, 0, 0, 0, 0, 0, 0, 0}},
00161         /* 60 */ {instr_pushad_60, "pushad", {0, 0, 0, 0, 0, 0, 0, 0}},
00162         /* 61 */ {instr_popad_61, "popad", {0, 0, 0, 0, 0, 0, 0, 0}},
00163         /* 62 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00164         /* 63 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00165         /* 64 */ {prefix_fn, "FS:", {0, 0, 0, 0, 0, 0, 0, 0}},
00166         /* 65 */ {prefix_fn, "GS:", {0, 0, 0, 0, 0, 0, 0, 0}},
00167         /* 66 */ {prefix_fn, "OPSIZE:", {0, 0, 0, 0, 0, 0, 0, 0}},
00168         /* 67 */ {prefix_fn, "ADSIZE:", {0, 0, 0, 0, 0, 0, 0, 0}},
00169         /* 68 */ {instr_push_68, "push", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00170         /* 69 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00171         /* 6a */ {instr_push_6a, "push", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00172         /* 6b */ {instr_imul_6b, "imul", {0, 0, II_MOD_REG_RM, II_IMM8, 0, 0, 0, 0}},
00173         /* 6c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00174         /* 6d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00175         /* 6e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00176         /* 6f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00177         /* 70 */ {instr_jcc_70, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00178         /* 71 */ {instr_jcc_71, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00179         /* 72 */ {instr_jcc_72, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00180         /* 73 */ {instr_jcc_73, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00181         /* 74 */ {instr_jcc_74, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00182         /* 75 */ {instr_jcc_75, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00183         /* 76 */ {instr_jcc_76, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00184         /* 77 */ {instr_jcc_77, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00185         /* 78 */ {instr_jcc_78, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00186         /* 79 */ {instr_jcc_79, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00187         /* 7a */ {instr_jcc_7a, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00188         /* 7b */ {instr_jcc_7b, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00189         /* 7c */ {instr_jcc_7c, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00190         /* 7d */ {instr_jcc_7d, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00191         /* 7e */ {instr_jcc_7e, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00192         /* 7f */ {instr_jcc_7f, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00193         /* 80 */ {instr_group_1_80, "group1", {0, 0, II_MOD_REG_RM, II_IMM8, 0, 0, 0, 0}},
00194         /* 81 */ {instr_group_1_81, "group1", {0, 0, II_MOD_REG_RM, II_IMM, 0, 0, 0, 0}},
00195         /* 82 */ {instr_group_1_80, "group1", {0, 0, II_MOD_REG_RM, II_IMM8, 0, 0, 0, 0}},
00196         /* 83 */ {instr_group_1_83, "group1", {0, 0, II_MOD_REG_RM, II_IMM8, 0, 0, 0, 0}},
00197         /* 84 */ {instr_test_84, "test", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00198         /* 85 */ {instr_test_85, "test", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00199         /* 86 */ {instr_xchg_86, "xchg", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00200         /* 87 */ {instr_xchg_87, "xchg", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00201         /* 88 */ {instr_mov_88, "mov", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00202         /* 89 */ {instr_mov_89, "mov", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00203         /* 8a */ {instr_mov_8a, "mov", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00204         /* 8b */ {instr_mov_8b, "mov", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00205         /* 8c */ {instr_mov_8c, "mov", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00206         /* 8d */ {instr_lea_8d, "lea", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00207         /* 8e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00208         /* 8f */ {instr_group_10_8f, "group10", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00209         /* 90 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0, 0}},
00210         /* 91 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0, 0}},
00211         /* 92 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0}},  
00212         /* 93 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0}},  
00213         /* 94 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0}},  
00214         /* 95 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0}},  
00215         /* 96 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0}},  
00216         /* 97 */ {instr_xchg_9x, "xchg", {0, 0, 0, 0, 0, 0, 0}},  
00217         /* 98 */ {instr_cbw_98, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00218         /* 99 */ {instr_cwd_99, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00219         /* 9a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00220         /* 9b */ {instr_wait_9b, "wait", {0, 0, 0, 0, 0, 0, 0, 0}},
00221         /* 9c */ {instr_pushf_9c, "pushf", {0, 0, 0, 0, 0, 0, 0, 0}},
00222         /* 9d */ {instr_popf_9d, "popf", {0, 0, 0, 0, 0, 0, 0, 0}},
00223         /* 9e */ {instr_sahf_9e, "sahf", {0, 0, 0, 0, 0, 0, 0, 0}},
00224         /* 9f */ {instr_lahf_9f, "lahf", {0, 0, 0, 0, 0, 0, 0, 0}},
00225         /* a0 */ {instr_mov_a0, "mov", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00226         /* a1 */ {instr_mov_a1, "mov", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00227         /* a2 */ {instr_mov_a2, "mov", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00228         /* a3 */ {instr_mov_a3, "mov", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00229         /* a4 */ {instr_movsb, "movsb", {0, 0, 0, 0, 0, 0, 0, 0}},
00230         /* a5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00231         /* a6 */ {instr_cmps_a6, "cmps", {0, 0, 0, 0, 0, 0, 0, 0}},
00232         /* a7 */ {instr_cmps_a7, "cmps", {0, 0, 0, 0, 0, 0, 0, 0}},
00233         /* a8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00234         /* a9 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00235         /* aa */ {instr_stos_aa, "stos", {0, 0, 0, 0, 0, 0, 0, 0}},
00236         /* ab */ {instr_stos_ab, "stos", {0, 0, 0, 0, 0, 0, 0, 0}},
00237         /* ac */ {instr_lods_ac, "lods", {0, 0, 0, 0, 0, 0, 0, 0}},
00238         /* ad */ {instr_lods_ad, "lods", {0, 0, 0, 0, 0, 0, 0, 0}},
00239         /* ae */ {instr_scas_ae, "scas", {0, 0, 0, 0, 0, 0, 0, 0}},
00240         /* af */ {instr_scas_af, "scas", {0, 0, 0, 0, 0, 0, 0, 0}},
00241         /* b0 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00242         /* b1 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00243         /* b2 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00244         /* b3 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00245         /* b4 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00246         /* b5 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00247         /* b6 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00248         /* b7 */ {instr_mov_bx_1, "mov", {0, 0, 0, II_IMM8, 0, 0, 0, 0}},
00249         /* b8 */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00250         /* b9 */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00251         /* ba */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00252         /* bb */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00253         /* bc */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00254         /* bd */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00255         /* be */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00256         /* bf */ {instr_mov_bx_2, "mov", {0, 0, 0, II_IMM, 0, 0, 0, 0}},
00257         /* c0 */ {instr_group_2_c0, "group2", {0, 0, II_MOD_YYY_RM, II_IMM8, 0, 0, 0, 0}},
00258         /* c1 */ {instr_group_2_c1, "group2", {0, 0, II_MOD_YYY_RM, II_IMM8, 0, 0, 0, 0}},
00259         /* c2 */ {instr_ret_c2, "ret", {0, 0, 0, II_IMM16, 0, 0, 0, 0}},
00260         /* c3 */ {instr_ret_c3, "ret", {0, 0, 0, 0, 0, 0, 0, 0}},
00261         /* c4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00262         /* c5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00263         /* c6 */ {instr_mov_c6, "mov", {0, 0, II_MOD_REG_RM, II_IMM8, 0, 0, 0, 0}},
00264         /* c7 */ {instr_mov_c7, "mov", {0, 0, II_MOD_REG_RM, II_IMM, 0, 0, 0, 0}},
00265         /* c8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00266         /* c9 */ {instr_leave, "leave", {0, 0, 0, 0, 0, 0, 0, 0}},
00267         /* ca */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00268         /* cb */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00269         /* cc */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00270         /* cd */ {instr_int_cd, "int", {0, 0, 0, II_IMM8, 0, 0, 0, 0}}, 
00271         /* ce */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00272         /* cf */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00273         /* d0 */ {instr_group_2_d0, "group2", {0, 0, II_MOD_YYY_RM, 0, 0, 0, 0, 0}},
00274         /* d1 */ {instr_group_2_d1, "group2", {0, 0, II_MOD_YYY_RM, 0, 0, 0, 0, 0}},
00275         /* d2 */ {instr_group_2_d2, "group2", {0, 0, II_MOD_YYY_RM, 0, 0, 0, 0, 0}},
00276         /* d3 */ {instr_group_2_d3, "group2", {0, 0, II_MOD_YYY_RM, 0, 0, 0, 0, 0}},
00277         /* d4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00278         /* d5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00279         /* d6 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00280         /* d7 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00281         /* d8 */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00282         /* d9 */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00283         /* da */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00284         /* db */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00285         /* dc */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00286         /* dd */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00287         /* de */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00288         /* df */ {instr_esc_fpu_dx, 0, {0, 0, 0, 0, 0, 0, 0, II_FPU_INSTR}},
00289         /* e0 */ {instr_loopcc_e0, "loopcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00290         /* e1 */ {instr_loopcc_e1, "loopcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00291         /* e2 */ {instr_loop_e2  , "loop",   {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00292         /* e3 */ {instr_jcc_e3, "jcc", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00293         /* e4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00294         /* e5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00295         /* e6 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00296         /* e7 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00297         /* e8 */ {instr_call_e8, "call", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00298         /* e9 */ {instr_jmp_e9, "jmp", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00299         /* ea */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00300         /* eb */ {instr_jmp_eb, "jmp", {0, 0, 0, 0, II_DISP8, 0, 0, 0}},
00301         /* ec */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00302         /* ed */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00303         /* ee */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00304         /* ef */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00305         /* f0 */ {prefix_fn, "LOCK:", {0, 0, 0, 0, 0, 0, 0, 0}},
00306         /* f1 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00307         /* f2 */ {prefix_fn, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00308         /* f3 */ {prefix_fn, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00309         /* f4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00310         /* f5 */ {instr_cmc_f5, "cmc", {0, 0, 0, 0, 0, 0, 0, 0}},
00311         /* f6 */ {instr_group_3_f6, "group3", {0, 0, II_MOD_REG_RM, 0, 0, 0, 1, 0}},
00312         /* f7 */ {instr_group_3_f7, "group3", {0, 0, II_MOD_REG_RM, 0, 0, 0, 1, 0}},
00313         /* f8 */ {instr_clc_f8, "clc", {0, 0, 0, 0, 0, 0, 0, 0}},
00314         /* f9 */ {instr_stc_f9, "stc", {0, 0, 0, 0, 0, 0, 0, 0}},
00315         /* fa */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00316         /* fb */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00317         /* fc */ {instr_cld_fc, "cld", {0, 0, 0, 0, 0, 0, 0, 0}},
00318         /* fd */ {instr_std_fd, "std", {0, 0, 0, 0, 0, 0, 0, 0}},
00319         /* fe */ {instr_group_4_fe, "group4", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00320         /* ff */ {instr_group_5_ff, "group5", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00321 };
00322 
00323 struct emu_cpu_instruction_info ii_twobyte[0x100] = {
00324         /* 00 */ {instr_sldt_0f00, "sldt", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00325         /* 01 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00326         /* 02 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00327         /* 03 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00328         /* 04 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00329         /* 05 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00330         /* 06 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00331         /* 07 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00332         /* 08 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00333         /* 09 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00334         /* 0a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00335         /* 0b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00336         /* 0c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00337         /* 0d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00338         /* 0e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00339         /* 0f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00340         /* 10 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00341         /* 11 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00342         /* 12 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00343         /* 13 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00344         /* 14 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00345         /* 15 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00346         /* 16 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00347         /* 17 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00348         /* 18 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00349         /* 19 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00350         /* 1a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00351         /* 1b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00352         /* 1c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00353         /* 1d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00354         /* 1e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00355         /* 1f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00356         /* 20 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00357         /* 21 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00358         /* 22 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00359         /* 23 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00360         /* 24 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00361         /* 25 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00362         /* 26 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00363         /* 27 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00364         /* 28 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00365         /* 29 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00366         /* 2a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00367         /* 2b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00368         /* 2c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00369         /* 2d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00370         /* 2e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00371         /* 2f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00372         /* 30 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00373         /* 31 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00374         /* 32 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00375         /* 33 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00376         /* 34 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00377         /* 35 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00378         /* 36 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00379         /* 37 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00380         /* 38 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00381         /* 39 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00382         /* 3a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00383         /* 3b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00384         /* 3c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00385         /* 3d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00386         /* 3e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00387         /* 3f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00388         /* 40 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00389         /* 41 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00390         /* 42 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00391         /* 43 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00392         /* 44 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00393         /* 45 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00394         /* 46 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00395         /* 47 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00396         /* 48 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00397         /* 49 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00398         /* 4a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00399         /* 4b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00400         /* 4c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00401         /* 4d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00402         /* 4e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00403         /* 4f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00404         /* 50 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00405         /* 51 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00406         /* 52 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00407         /* 53 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00408         /* 54 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00409         /* 55 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00410         /* 56 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00411         /* 57 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00412         /* 58 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00413         /* 59 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00414         /* 5a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00415         /* 5b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00416         /* 5c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00417         /* 5d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00418         /* 5e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00419         /* 5f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00420         /* 60 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00421         /* 61 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00422         /* 62 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00423         /* 63 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00424         /* 64 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00425         /* 65 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00426         /* 66 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00427         /* 67 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00428         /* 68 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00429         /* 69 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00430         /* 6a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00431         /* 6b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00432         /* 6c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00433         /* 6d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00434         /* 6e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00435         /* 6f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00436         /* 70 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00437         /* 71 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00438         /* 72 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00439         /* 73 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00440         /* 74 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00441         /* 75 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00442         /* 76 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00443         /* 77 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00444         /* 78 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00445         /* 79 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00446         /* 7a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00447         /* 7b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00448         /* 7c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00449         /* 7d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00450         /* 7e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00451         /* 7f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00452         /* 80 */ {instr_jcc_0f80, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00453         /* 81 */ {instr_jcc_0f81, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00454         /* 82 */ {instr_jcc_0f82, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00455         /* 83 */ {instr_jcc_0f83, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00456         /* 84 */ {instr_jcc_0f84, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00457         /* 85 */ {instr_jcc_0f85, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00458         /* 86 */ {instr_jcc_0f86, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00459         /* 87 */ {instr_jcc_0f87, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00460         /* 88 */ {instr_jcc_0f88, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00461         /* 89 */ {instr_jcc_0f89, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00462         /* 8a */ {instr_jcc_0f8a, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00463         /* 8b */ {instr_jcc_0f8b, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00464         /* 8c */ {instr_jcc_0f8c, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00465         /* 8d */ {instr_jcc_0f8d, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00466         /* 8e */ {instr_jcc_0f8e, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00467         /* 8f */ {instr_jcc_0f8f, "jcc", {0, 0, 0, 0, II_DISPF, 0, 0, 0}},
00468         /* 90 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00469         /* 91 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00470         /* 92 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00471         /* 93 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00472         /* 94 */ {instr_setcc_0f94, "setz", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00473         /* 95 */ {instr_setcc_0f95, "setnz", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00474         /* 96 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00475         /* 97 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00476         /* 98 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00477         /* 99 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00478         /* 9a */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00479         /* 9b */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00480         /* 9c */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00481         /* 9d */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00482         /* 9e */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00483         /* 9f */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00484         /* a0 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00485         /* a1 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00486         /* a2 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00487         /* a3 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00488         /* a4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00489         /* a5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00490         /* a6 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00491         /* a7 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00492         /* a8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00493         /* a9 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00494         /* aa */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00495         /* ab */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00496         /* ac */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00497         /* ad */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00498         /* ae */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00499         /* af */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00500         /* b0 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00501         /* b1 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00502         /* b2 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00503         /* b3 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00504         /* b4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00505         /* b5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00506         /* b6 */ {instr_movzx_0fb6, "movzx", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},   
00507         /* b7 */ {instr_movzx_0fb7, "movzx", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},   
00508         /* b8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00509         /* b9 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00510         /* ba */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00511         /* bb */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00512         /* bc */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00513         /* bd */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00514         /* be */ {instr_movsx_0fbe, "movsx", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00515         /* bf */ {instr_movsx_0fbf, "movsx", {0, 0, II_MOD_REG_RM, 0, 0, 0, 0, 0}},
00516         /* c0 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00517         /* c1 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00518         /* c2 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00519         /* c3 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00520         /* c4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00521         /* c5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00522         /* c6 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00523         /* c7 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00524         /* c8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00525         /* c9 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00526         /* ca */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00527         /* cb */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00528         /* cc */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00529         /* cd */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00530         /* ce */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00531         /* cf */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00532         /* d0 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00533         /* d1 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00534         /* d2 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00535         /* d3 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00536         /* d4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00537         /* d5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00538         /* d6 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00539         /* d7 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00540         /* d8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00541         /* d9 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00542         /* da */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00543         /* db */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00544         /* dc */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00545         /* dd */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00546         /* de */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00547         /* df */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00548         /* e0 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00549         /* e1 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00550         /* e2 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00551         /* e3 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00552         /* e4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00553         /* e5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00554         /* e6 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00555         /* e7 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00556         /* e8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00557         /* e9 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00558         /* ea */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00559         /* eb */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00560         /* ec */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00561         /* ed */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00562         /* ee */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00563         /* ef */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00564         /* f0 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00565         /* f1 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00566         /* f2 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00567         /* f3 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00568         /* f4 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00569         /* f5 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00570         /* f6 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00571         /* f7 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00572         /* f8 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00573         /* f9 */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00574         /* fa */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00575         /* fb */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00576         /* fc */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00577         /* fd */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00578         /* fe */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00579         /* ff */ {0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
00580 };
00581 
00582 
00583 
00584 #endif

Generated on Sun Jan 9 16:47:44 2011 for libemu by  doxygen 1.6.1