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

📄 optable.h

📁 DOSBox emulates a full x86 pc with sound and dos. Its main use is to run old dosgames on platforms w
💻 H
📖 第 1 页 / 共 3 页
字号:
/* Big ass opcode table normal,double, 66 normal, 66 double */static OpCode OpCodeTable[1024]={/* 0x00 - 0x07 */{L_MODRM	,t_ADDb	,S_Eb	,M_EbGb		},{L_MODRM	,t_ADDw	,S_Ew	,M_EwGw		},{L_MODRM	,t_ADDb	,S_Gb	,M_GbEb		},{L_MODRM	,t_ADDw	,S_Gw	,M_GwEw		},{L_REGbIb	,t_ADDb	,S_REGb	,REGI_AL	},{L_REGwIw	,t_ADDw	,S_REGw	,REGI_AX	},{L_SEG		,0		,S_PUSHw,es			},{D_POPSEGw,0		,0		,es			},/* 0x08 - 0x0f */{L_MODRM	,t_ORb	,S_Eb	,M_EbGb		},{L_MODRM	,t_ORw	,S_Ew	,M_EwGw		},{L_MODRM	,t_ORb	,S_Gb	,M_GbEb		},{L_MODRM	,t_ORw	,S_Gw	,M_GwEw		},{L_REGbIb	,t_ORb	,S_REGb	,REGI_AL	},{L_REGwIw	,t_ORw	,S_REGw	,REGI_AX	},{L_SEG		,0		,S_PUSHw,cs			},{L_DOUBLE	,0		,0		,0			},/* 0x10 - 0x17 */{L_MODRM	,t_ADCb	,S_Eb	,M_EbGb		},{L_MODRM	,t_ADCw	,S_Ew	,M_EwGw		},{L_MODRM	,t_ADCb	,S_Gb	,M_GbEb		},{L_MODRM	,t_ADCw	,S_Gw	,M_GwEw		},{L_REGbIb	,t_ADCb	,S_REGb	,REGI_AL	},{L_REGwIw	,t_ADCw	,S_REGw	,REGI_AX	},{L_SEG		,0		,S_PUSHw,ss			},{D_POPSEGw,0		,0		,ss			},/* 0x18 - 0x1f */{L_MODRM	,t_SBBb	,S_Eb	,M_EbGb		},{L_MODRM	,t_SBBw	,S_Ew	,M_EwGw		},{L_MODRM	,t_SBBb	,S_Gb	,M_GbEb		},{L_MODRM	,t_SBBw	,S_Gw	,M_GwEw		},{L_REGbIb	,t_SBBb	,S_REGb	,REGI_AL	},{L_REGwIw	,t_SBBw	,S_REGw	,REGI_AX	},{L_SEG		,0		,S_PUSHw,ds			},{D_POPSEGw,0		,0		,ds			},/* 0x20 - 0x27 */{L_MODRM	,t_ANDb	,S_Eb	,M_EbGb		},{L_MODRM	,t_ANDw	,S_Ew	,M_EwGw		},{L_MODRM	,t_ANDb	,S_Gb	,M_GbEb		},{L_MODRM	,t_ANDw	,S_Gw	,M_GwEw		},{L_REGbIb	,t_ANDb	,S_REGb	,REGI_AL	},{L_REGwIw	,t_ANDw	,S_REGw	,REGI_AX	},{L_PRESEG	,0		,0		,es			},{D_DAA	,0		,0		,0			},/* 0x28 - 0x2f */{L_MODRM	,t_SUBb	,S_Eb	,M_EbGb		},{L_MODRM	,t_SUBw	,S_Ew	,M_EwGw		},{L_MODRM	,t_SUBb	,S_Gb	,M_GbEb		},{L_MODRM	,t_SUBw	,S_Gw	,M_GwEw		},{L_REGbIb	,t_SUBb	,S_REGb	,REGI_AL	},{L_REGwIw	,t_SUBw	,S_REGw	,REGI_AX	},{L_PRESEG	,0		,0		,cs			},{D_DAS	,0		,0		,0			},/* 0x30 - 0x37 */{L_MODRM	,t_XORb	,S_Eb	,M_EbGb		},{L_MODRM	,t_XORw	,S_Ew	,M_EwGw		},{L_MODRM	,t_XORb	,S_Gb	,M_GbEb		},{L_MODRM	,t_XORw	,S_Gw	,M_GwEw		},{L_REGbIb	,t_XORb	,S_REGb	,REGI_AL	},{L_REGwIw	,t_XORw	,S_REGw	,REGI_AX	},{L_PRESEG	,0		,0		,ss			},{D_AAA	,0		,0		,0			},/* 0x38 - 0x3f */{L_MODRM	,t_CMPb	,0		,M_EbGb		},{L_MODRM	,t_CMPw	,0		,M_EwGw		},{L_MODRM	,t_CMPb	,0		,M_GbEb		},{L_MODRM	,t_CMPw	,0		,M_GwEw		},{L_REGbIb	,t_CMPb	,0		,REGI_AL	},{L_REGwIw	,t_CMPw	,0		,REGI_AX	},{L_PRESEG	,0		,0		,ds			},{D_AAS	,0		,0		,0			},/* 0x40 - 0x47 */{L_REGw		,t_INCw	,S_REGw	,REGI_AX},{L_REGw	,t_INCw	,S_REGw	,REGI_CX},{L_REGw		,t_INCw	,S_REGw	,REGI_DX},{L_REGw	,t_INCw	,S_REGw	,REGI_BX},{L_REGw		,t_INCw	,S_REGw	,REGI_SP},{L_REGw	,t_INCw	,S_REGw	,REGI_BP},{L_REGw		,t_INCw	,S_REGw	,REGI_SI},{L_REGw	,t_INCw	,S_REGw	,REGI_DI},/* 0x48 - 0x4f */{L_REGw		,t_DECw	,S_REGw	,REGI_AX},{L_REGw	,t_DECw	,S_REGw	,REGI_CX},{L_REGw		,t_DECw	,S_REGw	,REGI_DX},{L_REGw	,t_DECw	,S_REGw	,REGI_BX},{L_REGw		,t_DECw	,S_REGw	,REGI_SP},{L_REGw	,t_DECw	,S_REGw	,REGI_BP},{L_REGw		,t_DECw	,S_REGw	,REGI_SI},{L_REGw	,t_DECw	,S_REGw	,REGI_DI},/* 0x50 - 0x57 */{L_REGw		,0		,S_PUSHw,REGI_AX},{L_REGw	,0		,S_PUSHw,REGI_CX},{L_REGw		,0		,S_PUSHw,REGI_DX},{L_REGw	,0		,S_PUSHw,REGI_BX},{L_REGw		,0		,S_PUSHw,REGI_SP},{L_REGw	,0		,S_PUSHw,REGI_BP},{L_REGw		,0		,S_PUSHw,REGI_SI},{L_REGw	,0		,S_PUSHw,REGI_DI},/* 0x58 - 0x5f */{L_POPw		,0		,S_REGw	,REGI_AX},{L_POPw	,0		,S_REGw	,REGI_CX},{L_POPw		,0		,S_REGw	,REGI_DX},{L_POPw	,0		,S_REGw	,REGI_BX},{L_POPw		,0		,S_REGw	,REGI_SP},{L_POPw	,0		,S_REGw	,REGI_BP},{L_POPw		,0		,S_REGw	,REGI_SI},{L_POPw	,0		,S_REGw	,REGI_DI},/* 0x60 - 0x67 */{D_PUSHAw	,0			,0		,0		},{D_POPAw	,0			,0		,0		},{L_MODRM	,O_BOUNDw	,0		,M_Gw	},{L_MODRM	,O_ARPL		,S_Ew	,M_EwGw	},{L_PRESEG	,0			,0		,fs		},{L_PRESEG	,0			,0		,gs		},{L_PREOP	,0			,0		,0		},{L_PREADD	,0			,0		,0		},/* 0x68 - 0x6f */{L_Iw		,0			,S_PUSHw,0		},{L_MODRM	,O_IMULRw	,S_Gw	,M_EwxIwx},{L_Ibx		,0			,S_PUSHw,0		},{L_MODRM	,O_IMULRw	,S_Gw	,M_EwxIbx},{L_STRING	,R_INSB		,0		,0		},{L_STRING	,R_INSW		,0		,0		},{L_STRING	,R_OUTSB	,0		,0		},{L_STRING	,R_OUTSW	,0		,0		},/* 0x70 - 0x77 */{L_Ibx		,O_C_O		,S_C_AIPw,0		},{L_Ibx	,O_C_NO		,S_C_AIPw,0		},{L_Ibx		,O_C_B		,S_C_AIPw,0		},{L_Ibx	,O_C_NB		,S_C_AIPw,0		},{L_Ibx		,O_C_Z		,S_C_AIPw,0		},{L_Ibx	,O_C_NZ		,S_C_AIPw,0		},{L_Ibx		,O_C_BE		,S_C_AIPw,0		},{L_Ibx	,O_C_NBE	,S_C_AIPw,0		},/* 0x78 - 0x7f */{L_Ibx		,O_C_S		,S_C_AIPw,0		},{L_Ibx	,O_C_NS		,S_C_AIPw,0		},{L_Ibx		,O_C_P		,S_C_AIPw,0		},{L_Ibx	,O_C_NP		,S_C_AIPw,0		},{L_Ibx		,O_C_L		,S_C_AIPw,0		},{L_Ibx	,O_C_NL		,S_C_AIPw,0		},{L_Ibx		,O_C_LE		,S_C_AIPw,0		},{L_Ibx	,O_C_NLE	,S_C_AIPw,0		},/* 0x80 - 0x87 */{L_MODRM	,0			,0		,M_GRP	},{L_MODRM	,1			,0		,M_GRP	},{L_MODRM	,0			,0		,M_GRP	},{L_MODRM	,3			,0		,M_GRP	},{L_MODRM	,t_TESTb	,0		,M_EbGb	},{L_MODRM	,t_TESTw	,0		,M_EwGw	},{L_MODRM	,0			,S_EbGb	,M_GbEb	},{L_MODRM	,0			,S_EwGw	,M_GwEw	},/* 0x88 - 0x8f */{L_MODRM		,0		,S_Eb	,M_Gb	},{L_MODRM	,0			,S_Ew	,M_Gw	},{L_MODRM		,0		,S_Gb	,M_Eb	},{L_MODRM	,0			,S_Gw	,M_Ew	},{L_MODRM		,0		,S_Ew	,M_SEG	},{L_MODRM	,0			,S_Gw	,M_EA	},{L_MODRM		,0		,S_SEGm	,M_Ew	},{L_POPwRM	,0			,S_Ew	,M_None	},/* 0x90 - 0x97 */{D_NOP		,0			,0		,0		},{L_REGw	,O_XCHG_AX	,S_REGw	,REGI_CX},{L_REGw		,O_XCHG_AX	,S_REGw	,REGI_DX},{L_REGw	,O_XCHG_AX	,S_REGw	,REGI_BX},{L_REGw		,O_XCHG_AX	,S_REGw	,REGI_SP},{L_REGw	,O_XCHG_AX	,S_REGw	,REGI_BP},{L_REGw		,O_XCHG_AX	,S_REGw	,REGI_SI},{L_REGw	,O_XCHG_AX	,S_REGw	,REGI_DI},/* 0x98 - 0x9f */{D_CBW		,0			,0		,0		},{D_CWD	,0			,0		,0		},{L_Ifw		,O_CALLFw	,0		,0		},{D_WAIT	,0			,0		,0		},{D_PUSHF	,0			,0		,0		},{D_POPF	,0			,0		,0		},{D_SAHF		,0			,0		,0		},{D_LAHF	,0			,0		,0		},/* 0xa0 - 0xa7 */{L_OP		,O_ALOP		,0		,0		},{L_OP		,O_AXOP		,0		,0		},{L_OP		,O_OPAL		,0		,0		},{L_OP		,O_OPAX		,0		,0		},{L_STRING	,R_MOVSB	,0		,0		},{L_STRING	,R_MOVSW	,0		,0		},{L_STRING	,R_CMPSB	,0		,0		},{L_STRING	,R_CMPSW	,0		,0		},/* 0xa8 - 0xaf */{L_REGbIb	,t_TESTb	,0		,REGI_AL},{L_REGwIw	,t_TESTw	,0		,REGI_AX},{L_STRING	,R_STOSB	,0		,0		},{L_STRING	,R_STOSW	,0		,0		},{L_STRING	,R_LODSB	,0		,0		},{L_STRING	,R_LODSW	,0		,0		},{L_STRING	,R_SCASB	,0		,0		},{L_STRING	,R_SCASW	,0		,0		},/* 0xb0	- 0xb7 */{L_Ib		,0			,S_REGb	,REGI_AL},{L_Ib	,0			,S_REGb	,REGI_CL},{L_Ib		,0			,S_REGb	,REGI_DL},{L_Ib	,0			,S_REGb	,REGI_BL},{L_Ib		,0			,S_REGb	,REGI_AH},{L_Ib	,0			,S_REGb	,REGI_CH},{L_Ib		,0			,S_REGb	,REGI_DH},{L_Ib	,0			,S_REGb	,REGI_BH},/* 0xb8 - 0xbf */{L_Iw		,0			,S_REGw	,REGI_AX},{L_Iw	,0			,S_REGw	,REGI_CX},{L_Iw		,0			,S_REGw	,REGI_DX},{L_Iw	,0			,S_REGw	,REGI_BX},{L_Iw		,0			,S_REGw	,REGI_SP},{L_Iw	,0			,S_REGw	,REGI_BP},{L_Iw		,0			,S_REGw	,REGI_SI},{L_Iw	,0			,S_REGw	,REGI_DI},/* 0xc0 - 0xc7 */{L_MODRM	,5			,0	,M_GRP_Ib	},{L_MODRM	,6			,0	,M_GRP_Ib	},{L_POPw		,0			,S_IPIw	,0		},{L_POPw	,0			,S_IP	,0		},{L_MODRM	,O_SEGES	,S_SEGGw,M_Efw	},{L_MODRM	,O_SEGDS	,S_SEGGw,M_Efw	},{L_MODRM	,0			,S_Eb	,M_Ib	},{L_MODRM	,0			,S_Ew	,M_Iw	},/* 0xc8 - 0xcf */{D_ENTERw	,0			,0		,0		},{D_LEAVEw	,0			,0		,0		},{D_RETFwIw	,0			,0		,0		},{D_RETFw	,0			,0		,0		},{L_VAL		,O_INT		,0		,3		},{L_Ib		,O_INT		,0		,0		},{L_INTO		,O_INT		,0		,0		},{D_IRETw	,0			,0		,0		},/* 0xd0 - 0xd7 */{L_MODRM	,5			,0	,M_GRP_1	},{L_MODRM	,6			,0	,M_GRP_1	},{L_MODRM	,5			,0	,M_GRP_CL	},{L_MODRM	,6			,0	,M_GRP_CL	},{L_Ib		,O_AAM		,0		,0		},{L_Ib		,O_AAD		,0		,0		},{D_SETALC	,0			,0		,0		},{D_XLAT	,0			,0		,0		},//TODO FPU/* 0xd8 - 0xdf */{L_MODRM	,O_FPU		,0		,0		},{L_MODRM	,O_FPU		,1		,0		},{L_MODRM	,O_FPU		,2		,0		},{L_MODRM	,O_FPU		,3		,0		},{L_MODRM	,O_FPU		,4		,0		},{L_MODRM	,O_FPU		,5		,0		},{L_MODRM	,O_FPU		,6		,0		},{L_MODRM	,O_FPU		,7		,0		},/* 0xe0 - 0xe7 */{L_Ibx		,O_LOOPNZ	,S_AIPw	,0		},{L_Ibx	,O_LOOPZ	,S_AIPw	,0		},{L_Ibx		,O_LOOP		,S_AIPw	,0		},{L_Ibx	,O_JCXZ		,S_AIPw	,0		},{L_Ib		,O_INb		,0		,0		},{L_Ib		,O_INw		,0		,0		},{L_Ib		,O_OUTb		,0		,0		},{L_Ib		,O_OUTw		,0		,0		},/* 0xe8 - 0xef */{L_Iw		,O_CALLNw	,S_AIPw	,0		},{L_Iwx	,0			,S_AIPw	,0		},{L_Ifw		,O_JMPFw	,0		,0		},{L_Ibx	,0			,S_AIPw	,0		},{L_REGw		,O_INb		,0		,REGI_DX},{L_REGw	,O_INw		,0		,REGI_DX},{L_REGw		,O_OUTb		,0		,REGI_DX},{L_REGw	,O_OUTw		,0		,REGI_DX},/* 0xf0 - 0xf7 */{D_LOCK		,0			,0		,0		},{D_ICEBP	,0			,0		,0		},{L_PREREPNE	,0			,0		,0		},{L_PREREP	,0			,0		,0		},{D_HLT		,0			,0		,0		},{D_CMC	,0			,0		,0		},{L_MODRM	,8			,0		,M_GRP	},{L_MODRM	,9			,0		,M_GRP	},/* 0xf8 - 0xff */{D_CLC		,0			,0		,0		},{D_STC	,0			,0		,0		},{D_CLI		,0			,0		,0		},{D_STI	,0			,0		,0		},{D_CLD		,0			,0		,0		},{D_STD	,0			,0		,0		},{L_MODRM	,0xb		,0		,M_GRP	},{L_MODRM	,0xc		,0		,M_GRP	},/* 0x100 - 0x107 */{L_MODRM	,O_GRP6w	,S_Ew	,M_Ew	},{L_MODRM	,O_GRP7w	,S_Ew	,M_Ew	},{L_MODRM	,O_LAR		,S_Gw	,M_EwGw	},{L_MODRM	,O_LSL		,S_Gw	,M_EwGw	},{0			,0			,0		,0		},{0		,0			,0		,0		},{D_CLTS		,0			,0		,0		},{0		,0			,0		,0		},/* 0x108 - 0x10f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x110 - 0x117 */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x118 - 0x11f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x120 - 0x127 */{L_MODRM	,O_M_Rd_CRx	,S_Ed	,0		},{L_MODRM	,O_M_Rd_DRx	,S_Ed	,0		},{L_MODRM	,O_M_CRx_Rd	,0		,M_Ed	},{L_MODRM	,O_M_DRx_Rd	,0		,M_Ed	},{L_MODRM	,O_M_Rd_TRx	,S_Ed	,0		},{0		,0			,0		,0		},{L_MODRM	,O_M_TRx_Rd	,0		,M_Ed	},{0		,0			,0		,0		},/* 0x128 - 0x12f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x130 - 0x137 */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x138 - 0x13f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x140 - 0x147 */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x148 - 0x14f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x150 - 0x157 */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x158 - 0x15f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x160 - 0x167 */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x168 - 0x16f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x170 - 0x177 */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},/* 0x178 - 0x17f */{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},{0			,0			,0		,0		},{0		,0			,0		,0		},

⌨️ 快捷键说明

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