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

📄 instsystem_c.cpp

📁 单片机宏汇编器的源程序。给一些爱好者作为学习编译原理和 C 程序设计的例子.
💻 CPP
📖 第 1 页 / 共 4 页
字号:
           { "NOMOD51",      NOMOD51_Tn, Dog_Ctrl, NULL },

           { "NOCOND",       NOCOND_Tn,  Dog_Ctrl, NULL },
           { "COND",         COND_Tn,    Dog_Ctrl, NULL },

           { "NOMACRO",      NOMARO_Tn,  Dog_Ctrl, NULL },
           { "MACRO",        MARO_Tn,    Dog_Ctrl, NULL },

           { "RB",           RB_Tn,      Dog_Ctrl, NULL },
           { "REGISTERBANK", RB_Tn,      Dog_Ctrl, NULL },
           { "NORB",           NORB_Tn,  Dog_Ctrl, NULL },
           { "NOREGISTERBANK", NORB_Tn,  Dog_Ctrl, NULL },

           { "EJ",           EJECT_Tn,   Dog_Ctrl, NULL },
           { "EJECT",        EJECT_Tn,   Dog_Ctrl, NULL },

           { "IC",           INCLU_Tn,   Dog_Ctrl, NULL },
           { "INCLUDE",      INCLU_Tn,   Dog_Ctrl, NULL },

           { "LI",           LI_Tn,      Dog_Ctrl, NULL },
           { "LIST",         LI_Tn,      Dog_Ctrl, NULL },
           { "NOLI",         NOLI_Tn,    Dog_Ctrl, NULL },
           { "NOLIST",       NOLI_Tn,    Dog_Ctrl, NULL },

           { "NOGEN",        NOGEN_Tn,   Dog_Ctrl, NULL },
           { "GEN",          GEN_Tn,     Dog_Ctrl, NULL },

           { "SA",           SAV_Tn,     Dog_Ctrl, NULL },
           { "SAVE",         SAV_Tn,     Dog_Ctrl, NULL },
           { "RS",           RSTO_Tn,    Dog_Ctrl, NULL },
           { "RESTORE",      RSTO_Tn,    Dog_Ctrl, NULL },

           { "RESET",        RESET_Tn,   Dog_Ctrl, NULL },
           { "SET",          SET_Tn,     Dog_Ctrl, NULL },

           { "ELSEIF",       ELSEIF_Tn,  Dog_Ctrl, NULL },
           { "ELSE",         ELSE_Tn,    Dog_Ctrl, NULL },
           { "ENDIF",        ENDIF_Tn,   Dog_Ctrl, NULL },
           { "IF",           IF_Tn,      Dog_Ctrl, NULL },
      //-------------------------------------------------------
             { "END",    END,    END,   NULL },
             { "BITADDRESSABLE", BITABLE, Pdw, NULL },
             { "OVERLAYABLE",   OVERABLE, Pdw, NULL },
             { "INBLOCK",      INBLOCKKn, Pdw, NULL },
             { "INPAGE",        INPAGEKn, Pdw, NULL },
             { "PAGE",            PAGEKn, Pdw, NULL },
             { "UNIT",            UNITKn, Pdw, NULL },

             { "AT",     _AT_,   Pdw,   NULL },
             { "CSEG",   CSEG,   Pdw,   NULL },
             { "DSEG",   DSEG,   Pdw,   NULL },
             { "XSEG",   XSEG,   Pdw,   NULL },
             { "ISEG",   ISEG,   Pdw,   NULL },
             { "BSEG",   BSEG,   Pdw,   NULL },

             { "EXTRN",  EXTRNKn,  Pdw, NULL },
             { "PUBLIC", PUBLICKn, Pdw, NULL },
             { "NAME",   NAMEToKn, Pdw, NULL },
             { "USING",  USINGTkn, Pdw, NULL },

             { "ELSEIF", ELSEIF_Kn,Pdw, NULL },
             { "ELSE",   ELSE_Kn,  Pdw, NULL },
             { "ENDIF",  ENDIF_Kn, Pdw, NULL },
             { "IF",     IF_Kn,    Pdw, NULL },

             { "EXITM",  EXITMTkn, Mro, NULL },
             { "IRPC",   IRPCTkn,  Mro, NULL },
             { "IRP",    IRPTkn,   Mro, NULL },
             { "REPT",   REPTTkn,  Mro, NULL },
             { "LOCAL",  LOCALTkn, Mro, NULL },
             { "ENDM",   ENDMTkn,  Mro, NULL },
             { "MACRO",  MACROTkn, Mro, NULL },

             { "SEGMENT",SEGMT,  Pdw,   NULL },
             { "DS",     DS,     Pdw,   NULL },
             { "RSEG",   RSEG,   Pdw,   NULL },
             { "XDATA",  XDATA,  Pdw,   NULL },
             { "IDATA",  IDATA,  Pdw,   NULL },
             { "DBIT",   DBIT,   Pdw,   NULL },

             { "NUMBER", NUMBER, Pdw,   NULL },
             { "CODE",   CODE,   Pdw,   NULL },
             { "ORG",    ORG,    Pdw,   NULL },
             { "DATA",   DATA,   Pdw,   NULL },
             { "BIT",    BIT,    Pdw,   NULL },
             { "SET",    SET,    Pdw,   NULL },
             { "EQU",    EQU,    Pdw,   NULL },
             { "DW",     DW,     Pdw,   NULL },
             { "DB",     DB,     Pdw,   NULL },

             { "NUL",    NULTkn, NULTkn,NULL },
             { "AND",    AND,    AND,   NULL },
             { "EQ",     EQ,     EQ,    NULL },
             { "GT",     GT,     GT,    NULL },
             { "GTE",    GTE,    GTE,   NULL },
             { "HIGH",   HIGH,   HIGH,  NULL },
             { "LOW",    LOW,    LOW,   NULL },
             { "LT",     LT,     LT,    NULL },
             { "LTE",    LTE,    LTE,   NULL },
             { "MOD",    MOD,    MOD,   NULL },
             { "NE",     NE,     NE,    NULL },
             { "SHL",    SHL,    SHL,   NULL },
             { "SHR",    SHR,    SHR,   NULL },
             { "XOR",    XOR,    XOR,   NULL },
             { "NOT",    NOT,    NOT,   NULL },
             { "OR",     OR,     OR,    NULL },

             { "RET",    RET,    Irv,   NULL },
             { "RETI",   RETI,   Irv,   NULL },
             { "RL",     RL,     Irv,   NULL },
             { "RLC",    RLC,    Irv,   NULL },
             { "RR",     RR,     Irv,   NULL },
             { "RRC",    RRC,    Irv,   NULL },
             { "SETB",   SETB,   Irv,   NULL },
             { "SJMP",   SJMP,   Irv,   NULL },
             { "SUBB",   SUBB,   Irv,   NULL },
             { "SWAP",   SWAP,   Irv,   NULL },
             { "XCH",    XCH,    Irv,   NULL },
             { "XCHD",   XCHD,   Irv,   NULL },
             { "XRL",    XRL,    Irv,   NULL },

             { "ACALL",  ACALL,  Irv,   NULL },
             { "ADD",    ADD,    Irv,   NULL },
             { "ADDC",   ADDC,   Irv,   NULL },
             { "AJMP",   AJMP,   Irv,   NULL },
             { "ANL",    ANL,    Irv,   NULL },
             { "CJNE",   CJNE,   Irv,   NULL },
             { "CLR",    CLR,    Irv,   NULL },
             { "INC",    INC,    Irv,   NULL },
             { "JB",     JB,     Irv,   NULL },
             { "JBC",    JBC,    Irv,   NULL },
             { "JC",     JC,     Irv,   NULL },
             { "JMP",    JMP,    Irv,   NULL },
             { "JNB",    JNB,    Irv,   NULL },
             { "JNC",    JNC,    Irv,   NULL },
             { "JNZ",    JNZ,    Irv,   NULL },
             { "JZ",     JZ,     Irv,   NULL },
             { "LCALL",  LCALL,  Irv,   NULL },
             { "LJMP",   LJMP,   Irv,   NULL },
             { "CALL",   CALL,   Irv,   NULL },

             { "MOV",    MOV,    Irv,   NULL },
             { "MOVC",   MOVC,   Irv,   NULL },
             { "MOVX",   MOVX,   Irv,   NULL },
             { "MUL",    MUL,    Irv,   NULL },
             { "ORL",    ORL,    Irv,   NULL },
             { "POP",    POP,    Irv,   NULL },
             { "PUSH",   PUSH,   Irv,   NULL },

             { "CPL",    CPL,    Irv,   NULL },
             { "DA",     DA,     Irv,   NULL },
             { "DEC",    DEC,    Irv,   NULL },
             { "DIV",    DIV,    Irv,   NULL },
             { "DJNZ",   DJNZ,   Irv,   NULL },
             { "NOP",    NOP,    Irv,   NULL },

             { "PC",     _PC,    Rgr,   NULL },
             { "AB",     _AB,    Rgr,   NULL },
             { "C",      _C,     Rgr,   NULL },
             { "DPTR",   _DPTR,  Rgr,   NULL },

             { "R0",     _R0,    Rgr,   NULL },
             { "R1",     _R1,    Rgr,   NULL },
             { "R2",     _R2,    Rgr,   NULL },
             { "R3",     _R3,    Rgr,   NULL },
             { "R4",     _R4,    Rgr,   NULL },
             { "R5",     _R5,    Rgr,   NULL },
             { "R6",     _R6,    Rgr,   NULL },
             { "R7",     _R7,    Rgr,   NULL },
             { "A",      _A,     Rgr,   NULL },

             { "",       0,      0,     NULL }
       }; // end
//---------------------------------------------------------------------------
#undef Irv
#undef Pdw
#undef Rgr
#undef Mro
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
// 哈希指针表
//---------------------------------------------------------------------------
Resvs* InstSystem::hashTbl[256] =
{   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,
    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,
    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,
    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,

    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,
    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,
    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,
    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
}; // end hashTbl[256]
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// 指令格式 OP Hash Table
//---------------------------------------------------------------------------
ITset* InstSystem::OPhash[256] =
{   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,
    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,
    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,
    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,

    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,
    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,
    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,
    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
}; // end OPhash[256]
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
// end InstSystem_C.cpp
//---------------------------------------------------------------------------
//               Written by JamesyFront.    ZLGmcu Dev.Co.Ltd.  2002.4 - 9.
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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