instab.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 407 行 · 第 1/2 页
C
407 行
/****************************************************************************
*
* Open Watcom Project
*
* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*
* ========================================================================
*
* This file contains Original Code and/or Modifications of Original
* Code as defined in and that are subject to the Sybase Open Watcom
* Public License version 1.0 (the 'License'). You may not use this file
* except in compliance with the License. BY USING THIS FILE YOU AGREE TO
* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
* provided with the Original Code and Modifications, and is also
* available at www.sybase.com/developer/opensource.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
* NON-INFRINGEMENT. Please see the License for the specific language
* governing rights and limitations under the License.
*
* ========================================================================
*
* Description: WHEN YOU FIGURE OUT WHAT THIS FILE DOES, PLEASE
* DESCRIBE IT HERE!
*
****************************************************************************/
#include "disasm.h"
op_desc const InsTab[] = {
I_ADD, OT_MOD_RM, /* 00 */
I_ADD, OT_MOD_RM, /* 01 */
I_ADD, OT_MOD_RM, /* 02 */
I_ADD, OT_MOD_RM, /* 03 */
I_ADD, OT_ACCUM_IMMED, /* 04 */
I_ADD, OT_ACCUM_IMMED, /* 05 */
I_PUSH, OT_SEG_OP, /* 06 */
I_POP, OT_SEG_OP, /* 07 */
I_OR, OT_MOD_RM, /* 08 */
I_OR, OT_MOD_RM, /* 09 */
I_OR, OT_MOD_RM, /* 0a */
I_OR, OT_MOD_RM, /* 0b */
I_OR, OT_ACCUM_IMMED, /* 0c */
I_OR, OT_ACCUM_IMMED, /* 0d */
I_PUSH, OT_SEG_OP, /* 0e */
I_286, OT_286, /* 0f (286/386) */
I_ADC, OT_MOD_RM, /* 10 */
I_ADC, OT_MOD_RM, /* 11 */
I_ADC, OT_MOD_RM, /* 12 */
I_ADC, OT_MOD_RM, /* 13 */
I_ADC, OT_ACCUM_IMMED, /* 14 */
I_ADC, OT_ACCUM_IMMED, /* 15 */
I_PUSH, OT_SEG_OP, /* 16 */
I_POP, OT_SEG_OP, /* 17 */
I_SBB, OT_MOD_RM, /* 18 */
I_SBB, OT_MOD_RM, /* 19 */
I_SBB, OT_MOD_RM, /* 1a */
I_SBB, OT_MOD_RM, /* 1b */
I_SBB, OT_ACCUM_IMMED, /* 1c */
I_SBB, OT_ACCUM_IMMED, /* 1d */
I_PUSH, OT_SEG_OP, /* 1e */
I_POP, OT_SEG_OP, /* 1f */
I_AND, OT_MOD_RM, /* 20 */
I_AND, OT_MOD_RM, /* 21 */
I_AND, OT_MOD_RM, /* 22 */
I_AND, OT_MOD_RM, /* 23 */
I_AND, OT_ACCUM_IMMED, /* 24 */
I_AND, OT_ACCUM_IMMED, /* 25 */
I_SEG, OT_SEG_REG, /* 26 */
I_DAA, OT_NULL, /* 27 */
I_SUB, OT_MOD_RM, /* 28 */
I_SUB, OT_MOD_RM, /* 29 */
I_SUB, OT_MOD_RM, /* 2a */
I_SUB, OT_MOD_RM, /* 2b */
I_SUB, OT_ACCUM_IMMED, /* 2c */
I_SUB, OT_ACCUM_IMMED, /* 2d */
I_SEG, OT_SEG_REG, /* 2e */
I_DAS, OT_NULL, /* 2f */
I_XOR, OT_MOD_RM, /* 30 */
I_XOR, OT_MOD_RM, /* 31 */
I_XOR, OT_MOD_RM, /* 32 */
I_XOR, OT_MOD_RM, /* 33 */
I_XOR, OT_ACCUM_IMMED, /* 34 */
I_XOR, OT_ACCUM_IMMED, /* 35 */
I_SEG, OT_SEG_REG, /* 36 */
I_AAA, OT_NULL, /* 37 */
I_CMP, OT_MOD_RM, /* 38 */
I_CMP, OT_MOD_RM, /* 39 */
I_CMP, OT_MOD_RM, /* 3a */
I_CMP, OT_MOD_RM, /* 3b */
I_CMP, OT_ACCUM_IMMED, /* 3c */
I_CMP, OT_ACCUM_IMMED, /* 3d */
I_SEG, OT_SEG_REG, /* 3e */
I_AAS, OT_NULL, /* 3f */
I_INC, OT_REG16, /* 40 */
I_INC, OT_REG16, /* 41 */
I_INC, OT_REG16, /* 42 */
I_INC, OT_REG16, /* 43 */
I_INC, OT_REG16, /* 44 */
I_INC, OT_REG16, /* 45 */
I_INC, OT_REG16, /* 46 */
I_INC, OT_REG16, /* 47 */
I_DEC, OT_REG16, /* 48 */
I_DEC, OT_REG16, /* 49 */
I_DEC, OT_REG16, /* 4a */
I_DEC, OT_REG16, /* 4b */
I_DEC, OT_REG16, /* 4c */
I_DEC, OT_REG16, /* 4d */
I_DEC, OT_REG16, /* 4e */
I_DEC, OT_REG16, /* 4f */
I_PUSH, OT_REG16, /* 50 */
I_PUSH, OT_REG16, /* 51 */
I_PUSH, OT_REG16, /* 52 */
I_PUSH, OT_REG16, /* 53 */
I_PUSH, OT_REG16, /* 54 */
I_PUSH, OT_REG16, /* 55 */
I_PUSH, OT_REG16, /* 56 */
I_PUSH, OT_REG16, /* 57 */
I_POP, OT_REG16, /* 58 */
I_POP, OT_REG16, /* 59 */
I_POP, OT_REG16, /* 5a */
I_POP, OT_REG16, /* 5b */
I_POP, OT_REG16, /* 5c */
I_POP, OT_REG16, /* 5d */
I_POP, OT_REG16, /* 5e */
I_POP, OT_REG16, /* 5f */
I_PUSHA, OT_NULL, /* 60 (186) */
I_POPA, OT_NULL, /* 61 (186) */
I_BOUND, OT_MOD_RM, /* 62 (186) */
I_ARPL, OT_MOD_RM, /* 63 (286) */
I_SEG, OT_FS, /* 64 (FS: 386) */
I_SEG, OT_GS, /* 65 (GS: 386) */
I_NULL, OT_OPND_SIZE, /* 66 (Opnd size prefix 386) */
I_NULL, OT_ADDR_SIZE, /* 67 (Addr size prefix 386) */
I_PUSH, OT_IMMED16, /* 68 (186) */
I_IMUL, OT_REG_MEM_IMMED16, /* 69 (186) */
I_PUSH, OT_IMMED, /* 6a (186) */
I_IMUL, OT_REG_MEM_IMMED8, /* 6b (186) */
I_INSB, OT_NULL, /* 6c (186) */
I_INSW, OT_NULL, /* 6d (186) */
I_OUTSB, OT_NULL, /* 6e (186) */
I_OUTSW, OT_NULL, /* 6f (186) */
I_JO, OT_IP_INC8, /* 70 */
I_JNO, OT_IP_INC8, /* 71 */
I_JB, OT_IP_INC8, /* 72 */
I_JAE, OT_IP_INC8, /* 73 */
I_JE, OT_IP_INC8, /* 74 */
I_JNE, OT_IP_INC8, /* 75 */
I_JBE, OT_IP_INC8, /* 76 */
I_JA, OT_IP_INC8, /* 77 */
I_JS, OT_IP_INC8, /* 78 */
I_JNS, OT_IP_INC8, /* 79 */
I_JP, OT_IP_INC8, /* 7a */
I_JPO, OT_IP_INC8, /* 7b */
I_JL, OT_IP_INC8, /* 7c */
I_JGE, OT_IP_INC8, /* 7d */
I_JLE, OT_IP_INC8, /* 7e */
I_JG, OT_IP_INC8, /* 7f */
I_IMMED, OT_RM_IMMED, /* 80 */
I_IMMED, OT_RM_IMMED, /* 81 */
I_IMMED, OT_RM_IMMED, /* 82 */
I_IMMED, OT_RM_IMMED, /* 83 */
I_TEST, OT_MOD_RM, /* 84 */
I_TEST, OT_MOD_RM, /* 85 */
I_XCHG, OT_MOD_RM, /* 86 */
I_XCHG, OT_MOD_RM, /* 87 */
I_MOV, OT_MOD_RM, /* 88 */
I_MOV, OT_MOD_RM, /* 89 */
I_MOV, OT_MOD_RM, /* 8a */
I_MOV, OT_MOD_RM, /* 8b */
I_MOV, OT_SR_RM, /* 8c */
I_LEA, OT_MOD_REG, /* 8d */
I_MOV, OT_SR_RM, /* 8e */
I_POP, OT_RM, /* 8f */
I_NOP, OT_NULL, /* 90 */
I_XCHG, OT_ACCUM_REG16, /* 91 */
I_XCHG, OT_ACCUM_REG16, /* 92 */
I_XCHG, OT_ACCUM_REG16, /* 93 */
I_XCHG, OT_ACCUM_REG16, /* 94 */
I_XCHG, OT_ACCUM_REG16, /* 95 */
I_XCHG, OT_ACCUM_REG16, /* 96 */
I_XCHG, OT_ACCUM_REG16, /* 97 */
I_CBW, OT_NULL, /* 98 */
I_CWD, OT_NULL, /* 99 */
I_CALL_FAR, OT_SEG_ADDR, /* 9a */
I_WAIT, OT_NULL, /* 9b */
I_PUSHF, OT_NULL, /* 9c */
I_POPF, OT_NULL, /* 9d */
I_SAHF, OT_NULL, /* 9e */
I_LAHF, OT_NULL, /* 9f */
I_MOV, OT_ACCUM_MEM, /* a0 */
I_MOV, OT_ACCUM_MEM, /* a1 */
I_MOV, OT_ACCUM_MEM, /* a2 */
I_MOV, OT_ACCUM_MEM, /* a3 */
I_MOVSB, OT_DS_SI_ES_DI, /* a4 */
I_MOVSW, OT_DS_SI_ES_DI, /* a5 */
I_CMPSB, OT_DS_SI_ES_DI, /* a6 */
I_CMPSW, OT_DS_SI_ES_DI, /* a7 */
I_TEST, OT_ACCUM_IMMED, /* a8 */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?