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

📄 outable.c

📁 把obj文件变成汇编代码的源程序
💻 C
📖 第 1 页 / 共 3 页
字号:
#include <stdio.h>
#include "o.h"

INST_T  instr[] = {
    mod_reg,        0,  "add",          /* ADD     mem/reg,reg (byte) [00] */
    mod_reg,        1,  "add",          /* ADD     mem/reg,reg (word) [01] */
    mod_reg,        2,  "add",          /* ADD     reg,mem/reg (byte) [02] */
    mod_reg,        3,  "add",          /* ADD     reg,mem/reg (word) [03] */
    two_byte,      AL,  "add",          /* ADD     AL,kk              [04] */
    three_byte,    AX,  "add",          /* ADD     AX,jjkk            [05] */
    one_byte,      ES,  "push",         /* PUSH    ES                 [06] */
    one_byte,      ES,  "pop",          /* POP     ES                 [07] */
    mod_reg,        0,  "or",           /* OR      mem/reg,reg (byte) [08] */
    mod_reg,        1,  "or",           /* OR      mem/reg,reg (word) [09] */
    mod_reg,        2,  "or",           /* OR      reg,mem/reg (byte) [0A] */
    mod_reg,        3,  "or",           /* OR      reg,mem/reg (word) [0B] */
    two_byte,      AL,  "or",           /* OR      AL,kk              [0C] */
    three_byte,    AX,  "or",           /* OR      AX,jjkk            [0D] */
    one_byte,      CS,  "push",         /* PUSH    CS                 [0E] */
    extra,          0,  "",             /* not used                   [0F] */
    mod_reg,        0,  "adc",          /* ADC     mem/reg,reg (byte) [10] */
    mod_reg,        1,  "adc",          /* ADC     mem/reg,reg (word) [11] */
    mod_reg,        2,  "adc",          /* ADC     reg,mem/reg (byte) [12] */
    mod_reg,        3,  "adc",          /* ADC     reg,mem/reg (word) [13] */
    two_byte,      AL,  "adc",          /* ADC     AL,kk              [14] */
    three_byte,    AX,  "adc",          /* ADC     AX,jjkk            [15] */
    one_byte,      SS,  "push",         /* PUSH    SS                 [16] */
    one_byte,      SS,  "pop",          /* POP     SS                 [17] */
    mod_reg,        0,  "sbb",          /* SBB     mem/reg,reg (byte) [18] */
    mod_reg,        1,  "sbb",          /* SBB     mem/reg,reg (word) [19] */
    mod_reg,        2,  "sbb",          /* SBB     reg,mem/reg (byte) [1A] */
    mod_reg,        3,  "sbb",          /* SBB     reg,mem/reg (word) [1B] */
    two_byte,      AL,  "sbb",          /* SBB     AL,kk              [1C] */
    three_byte,    AX,  "sbb",          /* SBB     AX,jjkk            [1D] */
    one_byte,      DS,  "push",         /* PUSH    DS                 [1E] */
    one_byte,      DS,  "pop",          /* POP     DS                 [1F] */
    mod_reg,        0,  "and",          /* AND     mem/reg,reg (byte) [20] */
    mod_reg,        1,  "and",          /* AND     mem/reg,reg (word) [21] */
    mod_reg,        2,  "and",          /* AND     reg,mem/reg (byte) [22] */
    mod_reg,        3,  "and",          /* AND     reg,mem/reg (word) [23] */
    two_byte,      AL,  "and",          /* AND     AL,kk              [24] */
    three_byte,    AX,  "and",          /* AND     AX,jjkk            [25] */
    seg_over,       0,  "",             /* SEGMENT OVERIDE "ES"       [26] */
    one_byte,    NREG,  "daa",          /* DAA                        [27] */
    mod_reg,        0,  "sub",          /* SUB     mem/reg,reg (byte) [28] */
    mod_reg,        1,  "sub",          /* SUB     mem/reg,reg (word) [29] */
    mod_reg,        2,  "sub",          /* SUB     reg,mem/reg (byte) [2A] */
    mod_reg,        3,  "sub",          /* SUB     reg,mem/reg (word) [2B] */
    two_byte,      AL,  "sub",          /* SUB     AL,kk              [2C] */
    three_byte,    AX,  "sub",          /* SUB     AX,jjkk            [2D] */
    seg_over,       0,  "",             /* SEGMENT OVERIDE "CS"       [2E] */
    one_byte,    NREG,  "das",          /* DAS                        [2F] */
    mod_reg,        0,  "xor",          /* XOR     mem/reg,reg (byte) [30] */
    mod_reg,        1,  "xor",          /* XOR     mem/reg,reg (word) [31] */
    mod_reg,        2,  "xor",          /* XOR     reg,mem/reg (byte) [32] */
    mod_reg,        3,  "xor",          /* XOR     reg,mem/reg (word) [33] */
    two_byte,      AL,  "xor",          /* XOR     AL,kk              [34] */
    three_byte,    AX,  "xor",          /* XOR     AX,jjkk            [35] */
    seg_over,       0,  "",             /* SEGMENT OVERIDE "SS"       [36] */
    one_byte,    NREG,  "aaa",          /* AAA                        [37] */
    mod_reg,        0,  "cmp",          /* CMP     mem/reg,reg (byte) [38] */
    mod_reg,        1,  "cmp",          /* CMP     mem/reg,reg (word) [39] */
    mod_reg,        2,  "cmp",          /* CMP     reg,mem/reg (byte) [3A] */
    mod_reg,        3,  "cmp",          /* CMP     reg,mem/reg (word) [3B] */
    two_byte,      AL,  "cmp",          /* CMP     AL,kk              [3C] */
    three_byte,    AX,  "cmp",          /* CMP     AX,jjkk            [3D] */
    seg_over,       0,  "",             /* SEGMENT OVERIDE "DS"       [3E] */
    one_byte,    NREG,  "aas",          /* AAS                        [3F] */
    one_byte,      AX,  "inc",          /* INC     AX                 [40] */
    one_byte,      CX,  "inc",          /* INC     CX                 [41] */
    one_byte,      DX,  "inc",          /* INC     DX                 [42] */
    one_byte,      BX,  "inc",          /* INC     BX                 [43] */
    one_byte,      SP,  "inc",          /* INC     SP                 [44] */
    one_byte,      BP,  "inc",          /* INC     BP                 [45] */
    one_byte,      SI,  "inc",          /* INC     SI                 [46] */
    one_byte,      DI,  "inc",          /* INC     DI                 [47] */
    one_byte,      AX,  "dec",          /* DEC     AX                 [48] */
    one_byte,      CX,  "dec",          /* DEC     CX                 [49] */
    one_byte,      DX,  "dec",          /* DEC     DX                 [4A] */
    one_byte,      BX,  "dec",          /* DEC     BX                 [4B] */
    one_byte,      SP,  "dec",          /* DEC     SP                 [4C] */
    one_byte,      BP,  "dec",          /* DEC     BP                 [4D] */
    one_byte,      SI,  "dec",          /* DEC     SI                 [4E] */
    one_byte,      DI,  "dec",          /* DEC     DI                 [4F] */
    one_byte,      AX,  "push",         /* PUSH    AX                 [50] */
    one_byte,      CX,  "push",         /* PUSH    CX                 [51] */
    one_byte,      DX,  "push",         /* PUSH    DX                 [52] */
    one_byte,      BX,  "push",         /* PUSH    BX                 [53] */
    one_byte,      SP,  "push",         /* PUSH    SP                 [54] */
    one_byte,      BP,  "push",         /* PUSH    BP                 [55] */
    one_byte,      SI,  "push",         /* PUSH    SI                 [56] */
    one_byte,      DI,  "push",         /* PUSH    DI                 [57] */
    one_byte,      AX,  "pop",          /* POP     AX                 [58] */
    one_byte,      CX,  "pop",          /* POP     CX                 [59] */
    one_byte,      DX,  "pop",          /* POP     DX                 [5A] */
    one_byte,      BX,  "pop",          /* POP     BX                 [5B] */
    one_byte,      SP,  "pop",          /* POP     SP                 [5C] */
    one_byte,      BP,  "pop",          /* POP     BP                 [5D] */
    one_byte,      SI,  "pop",          /* POP     SI                 [5E] */
    one_byte,      DI,  "pop",          /* POP     DI                 [5F] */
    one_byte,    NREG,  "pusha",        /* PUSHA (PUSHAD on 386)      [60] */
    one_byte,    NREG,  "popa",         /* POPA (POPAD on 386)        [61] */
    mod_reg,       17,  "bound",        /* BOUND                      [62] */
    mod_reg,        1,  "arpl",         /* ARPL                       [63] */
    seg_over,       0,  "",             /* SEGMENT OVERIDE "FS" on 386[64] */
    seg_over,       0,  "",             /* SEGMENT OVERIDE "GS" on 386[65] */
    opsize_over,    0,  "",             /* OPERAND SIZE OVERIDE on 386[66] */
    adrsize_over,   0,  "",             /* ADDRESS SIZE OVERIDE on 386[67] */
    three_byte,  NREG,  "push",         /* PUSH (immediate word)      [68] */
    mod_reg,       24,  "imul",         /* IMUL reg,mem/reg,imm. word [69] */
    two_ubyte,      0,  "push\t",       /* PUSH (immed. signed byte)  [6A] */
    mod_reg,       25,  "imul",         /* IMUL reg,mem/reg,imm. byte [6B] */
    one_byte,    NREG,  "insb",         /* INS     BYTE               [6C] */
    one_byte,    NREG,  "insw",         /* INS     WORD               [6D] */
    one_byte,    NREG,  "outsb",        /* OUTS    BYTE               [6E] */
    one_byte,    NREG,  "outsw",        /* OUTS    WORD               [6F] */
    disp8,          0,  "jo",           /* JO      <Label>            [70] */
    disp8,          0,  "jno",          /* JNO     <Label>            [71] */
    disp8,          0,  "jc",           /* JC      <Label>            [72] */
    disp8,          0,  "jnc",          /* JNC     <Label>            [73] */
    disp8,          0,  "jz",           /* JZ      <Label>            [74] */
    disp8,          0,  "jnz",          /* JNZ     <Label>            [75] */
    disp8,          0,  "jbe",          /* JBE     <Label>            [76] */
    disp8,          0,  "jnbe",         /* JNBE    <Label>            [77] */
    disp8,          0,  "js",           /* JS      <Label>            [78] */
    disp8,          0,  "jns",          /* JNS     <Label>            [79] */
    disp8,          0,  "jp",           /* JP      <Label>            [7A] */
    disp8,          0,  "jnp",          /* JNP     <Label>            [7B] */
    disp8,          0,  "jl",           /* JL      <Label>            [7C] */
    disp8,          0,  "jnl",          /* JNL     <Label>            [7D] */
    disp8,          0,  "jng",          /* JG      <Label>            [7E] */
    disp8,          0,  "jg",           /* JNG     <Label>            [7F] */
    mod_reg,        4,  "",             /* Special mem/reg,kk         [80] */
    mod_reg,        5,  "",             /* Special mem/reg,jjkk       [81] */
    stub,           0,  "",             /* not used                   [82] */
    mod_reg,        6,  "",             /* Special mem/reg,kk (word)  [83] */
    mod_reg,        2,  "test",         /* TEST    mem/reg,reg (byte) [84] */
    mod_reg,        3,  "test",         /* TEST    mem/reg,reg (word) [85] */
    mod_reg,        2,  "xchg",         /* XCHG    reg,mem/reg (byte) [86] */
    mod_reg,        3,  "xchg",         /* XCHG    reg,mem/reg (word) [87] */
    mod_reg,        0,  "mov",          /* MOV     mem/reg,reg (byte) [88] */
    mod_reg,        1,  "mov",          /* MOV     mem/reg,reg (word) [89] */
    mod_reg,        2,  "mov",          /* MOV     reg,mem/reg (byte) [8A] */
    mod_reg,        3,  "mov",          /* MOV     reg,mem/reg (word) [8B] */
    mod_reg,        7,  "mov",          /* MOV     mem/reg,segreg     [8C] */
    mod_reg,        9,  "lea",          /* LEA     reg,mem/reg        [8D] */
    mod_reg,        8,  "mov",          /* MOV     segreg,mem/reg     [8E] */
    mod_reg,       10,  "",             /* POP     mem/reg (Special)  [8F] */
    one_byte,    NREG,  "nop",          /* NOP                        [90] */
    one_a,         CX,  "xchg",         /* XCHG    AX,CX              [91] */
    one_a,         DX,  "xchg",         /* XCHG    AX,DX              [92] */
    one_a,         BX,  "xchg",         /* XCHG    AX,BX              [93] */
    one_a,         SP,  "xchg",         /* XCHG    AX,SP              [94] */
    one_a,         BP,  "xchg",         /* XCHG    AX,BP              [95] */
    one_a,         SI,  "xchg",         /* XCHG    AX,SI              [96] */
    one_a,         DI,  "xchg",         /* XCHG    AX,DI              [97] */
    one_byte,    NREG,  "cbw",          /* CBW                        [98] */
    one_byte,    NREG,  "cwd",          /* CWD                        [99] */
    five_byte,      0,  "call",         /* CALL    <Label>            [9A] */
    wait,           0,  "wait",         /* WAIT                       [9B] */
    one_byte,    NREG,  "pushf",        /* PUSHF                      [9C] */
    one_byte,    NREG,  "popf",         /* POPF                       [9D] */
    one_byte,    NREG,  "sahf",         /* SAHF                       [9E] */
    one_byte,    NREG,  "lahf",         /* LAHF                       [9F] */
    three_a,        0,  "mov",          /* MOV     AL,addr            [A0] */
    three_a,        0,  "mov",          /* MOV     AX,addr            [A1] */
    three_a,        0,  "mov",          /* MOV     addr,AL            [A2] */
    three_a,        0,  "mov",          /* MOV     addr,AX            [A3] */
    string_byte,    0,  "movs",         /* MOVS    BYTE               [A4] */
    string_byte,    0,  "movs",         /* MOVS    WORD               [A5] */
    string_byte,    0,  "cmps",         /* CMPS    BYTE               [A6] */
    string_byte,    0,  "cmps",         /* CMPS    WORD               [A7] */
    two_byte,      AL,  "test",         /* TEST    AL,addr            [A8] */
    three_byte,    AX,  "test",         /* TEST    AX,addr            [A9] */
    string_byte,    0,  "stos",         /* STOS    BYTE               [AA] */
    string_byte,    0,  "stos",         /* STOS    WORD               [AB] */
    string_byte,    0,  "lods",         /* LODS    BYTE               [AC] */
    string_byte,    0,  "lods",         /* LODS    WORD               [AD] */
    string_byte,    0,  "scas",         /* SCAS    BYTE               [AE] */
    string_byte,    0,  "scas",         /* SCAS    WORD               [AF] */
    two_byte,      AL,  "mov",          /* MOV     AL,kk              [B0] */
    two_byte,      CL,  "mov",          /* MOV     CL,kk              [B1] */
    two_byte,      DL,  "mov",          /* MOV     DL,kk              [B2] */
    two_byte,      BL,  "mov",          /* MOV     BL,kk              [B3] */
    two_byte,      AH,  "mov",          /* MOV     AH,kk              [B4] */
    two_byte,      CH,  "mov",          /* MOV     CH,kk              [B5] */
    two_byte,      DH,  "mov",          /* MOV     DH,kk              [B6] */
    two_byte,      BH,  "mov",          /* MOV     BH,kk              [B7] */
    three_byte,    AX,  "mov",          /* MOV     AX,kk              [B8] */
    three_byte,    CX,  "mov",          /* MOV     CX,kk              [B9] */
    three_byte,    DX,  "mov",          /* MOV     DX,kk              [BA] */
    three_byte,    BX,  "mov",          /* MOV     BX,kk              [BB] */
    three_byte,    SP,  "mov",          /* MOV     SP,kk              [BC] */
    three_byte,    BP,  "mov",          /* MOV     BP,kk              [BD] */
    three_byte,    SI,  "mov",          /* MOV     SI,kk              [BE] */
    three_byte,    DI,  "mov",          /* MOV     DI,kk              [BF] */

⌨️ 快捷键说明

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