📄 tacconst.cpp
字号:
#ifndef __TACCONST_CPP__
#define __TACCONST_CPP__
const int TAC_oper_type_NULL = -1;
const int TAC_oper_type_variable = 0;
const int TAC_oper_type_label = 1;
const int TAC_oper_type_constint = 2;
const int TAC_oper_type_constdouble = 3;
const int TAC_oper_type_ints = 4;
const int TAC_single_char_size = 4;
const int TAC_OP_ADD = 0;
const int TAC_OP_SUB = 1;
const int TAC_OP_MUL = 2;
const int TAC_OP_DIV = 3;
const int TAC_OP_MOD = 4;
const int TAC_OP_LET = 5;
const int TAC_OP_LABEL = 6;
const int TAC_OP_JE = 7;
const int TAC_OP_JNE = 8;
const int TAC_OP_JL = 9;
const int TAC_OP_JLE = 10;
const int TAC_OP_JG = 11;
const int TAC_OP_JGE = 12;
const int TAC_OP_JMP = 13;
const int TAC_OP_AND = 14;
const int TAC_OP_OR = 15;
const int TAC_OP_NOT = 16;
const int TAC_OP_LEA = 17;
const int TAC_OP_LOAD = 18;
const int TAC_OP_STORE = 19;
const int TAC_OP_PUSH = 20;
const int TAC_OP_POP = 21;
const int TAC_OP_CALL = 22;
const int TAC_OP_RCALL = 23;
const int TAC_OP_ICALL = 24;
const int TAC_OP_RICALL = 25;
const int TAC_OP_RET = 26;
const int TAC_OP_EXIT = 27;
const int TAC_OP_GETVP = 28;
const int TAC_OP_MEMCPY = 29;
const int TAC_OP_LEAFUNC = 30;
const int TAC_OP_XOR = 31;
const int TAC_OP_SHL = 32;
const int TAC_OP_SHR = 33;
const int TAC_OP_RREAD = 34;
const int TAC_OP_RWRITE = 35;
const int TAC_OP_ASM = 36;
const int TAC_OP_HALT = 40;
const int TAC_OP_END = 42;
const int TAC_FUNC_PRINTINT = -1;
const int TAC_FUNC_PRINTDOUBLE = -2;
const int TAC_FUNC_READINT = -3;
const int TAC_FUNC_READDOUBLE = -4;
const int TAC_FUNC_ALLOCATEMEM = -5;
const int TAC_FUNC_PRINTSTR = -6;
const int TAC_FUNC_READLINE = -7;
const int TAC_SRC_relational_LES = 0;
const int TAC_SRC_relational_LEQ = 1;
const int TAC_SRC_relational_GTR = 2;
const int TAC_SRC_relational_GEQ = 3;
const int TAC_SRC_relational_EQL = 4;
const int TAC_SRC_relational_NEQ = 5;
const int TAC_SRC_logical_NOT = 6;
const int TAC_SRC_logical_AND = 7;
const int TAC_SRC_logical_OR = 8;
const int TAC_SRC_calculational_ADD = 9;
const int TAC_SRC_calculational_MINUS = 10;
const int TAC_SRC_calculational_MUL = 11;
const int TAC_SRC_calculational_DIV = 12;
const int TAC_SRC_calculational_MOD = 13;
const int TAC_SRC_calculational_AND = 14;
const int TAC_SRC_calculational_OR = 15;
const int TAC_SRC_calculational_XOR = 16;
const int TAC_SRC_calculational_SHL = 17;
const int TAC_SRC_calculational_SHR = 18;
const int TAC_SRC_calculational_NOT = 19;
const int REG_OP_READ = 0;
const int REG_OP_WRITE = 1;
const int PROGRAM_runtime_range_check_error = 201;
const int PROGRAM_runtime_protection_error = 216;
struct TASMop {
char* op_name;
char* code;
};
const TASMop ASMops[] = { {"ADDSP3", "00000xxxYYYYYYYY"},
{"B", "00010XXXXXXXXXXX"},
{"BEQZ", "00100xxxYYYYYYYY"},
{"BNEZ", "00101xxxYYYYYYYY"},
{"SLL", "00110xxxyyyZZZ00"},
{"SRL", "00110xxxyyyZZZ10"},
{"SRA", "00110xxxyyyZZZ11"},
{"ADDIU3", "01000xxxyyy0ZZZZ"},
{"ADDIU", "01001xxxYYYYYYYY"},
{"SLTI", "01010xxxYYYYYYYY"},
{"SLTUI", "01011xxxYYYYYYYY"},
{"BTEQZ", "01100000XXXXXXXX"},
{"BTNEZ", "01100001XXXXXXXX"},
{"SW-RS", "01100010XXXXXXXX"},
{"ADDSP", "01100011XXXXXXXX"},
{"MTSP", "01100100xxx00000"},
{"MOVE", "01100111xxx00yyy"},
{"LI", "01101xxxYYYYYYYY"},
{"CMPI", "01110xxxYYYYYYYY"},
{"LW-SP", "10010xxxYYYYYYYY"},
{"LW", "10011xxxyyyZZZZZ"},
{"SW-SP", "11010xxxYYYYYYYY"},
{"SW", "11011xxxyyyZZZZZ"},
{"ADDU", "11100xxxyyyzzz01"},
{"SUBU", "11100xxxyyyzzz11"},
{"JR", "11101xxx00000000"},
{"MFHI", "11101xxx00010000"},
{"MFLO", "11101xxx00010010"},
{"MFPC", "11101xxx01000000"},
{"SLT", "11101xxxyyy00010"},
{"SLTU", "11101xxxyyy00011"},
{"SLLV", "11101xxxyyy00100"},
{"SRLV", "11101xxxyyy00110"},
{"SRAV", "11101xxxyyy00111"},
{"CMP", "11101xxxyyy01010"},
{"NEG", "11101xxxyyy01011"},
{"AND", "11101xxxyyy01100"},
{"OR", "11101xxxyyy01101"},
{"XOR", "11101xxxyyy01110"},
{"NOT", "11101xxxyyy01111"},
{"MULT", "11101xxxyyy11000"},
{"MULTU", "11101xxxyyy11001"},
{"DIV", "11101xxxyyy11010"},
{"DIVU", "11101xxxyyy11011"},
{"NOP", "0000100000000000"},
{"MFIH", "11110xxx00000000"},
{"MTIH", "11110xxx00000001"},
{"INT", "111110000000XXXX"}
};
#endif // __TACCONST_CPP__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -