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 + -
显示快捷键?