DCPU16_ASM.Assembler.Parser.Parser C# (CSharp) Méthode

Parser() public méthode

public Parser ( ) : System
Résultat System
        public Parser()
        {
            this.labelAddressDitionary = new Dictionary<string, ushort>();
            this.labelReferences = new Dictionary<ushort, string>();
            this.machineCode = new List<ushort>();
            this.labelDataFieldReferences = new Dictionary<ushort, string>();

            this.opcodeDictionary = new Dictionary<string, dcpuOpCode>
                {
                    // non basic instructions
                    { "jsr", dcpuOpCode.JSR_OP },

                    // basic instructions
                    { "set", dcpuOpCode.SET_OP },
                    { "add", dcpuOpCode.ADD_OP },
                    { "sub", dcpuOpCode.SUB_OP },
                    { "mul", dcpuOpCode.MUL_OP },
                    { "div", dcpuOpCode.DIV_OP },
                    { "mod", dcpuOpCode.MOD_OP },
                    { "shl", dcpuOpCode.SHL_OP },
                    { "shr", dcpuOpCode.SHR_OP },
                    { "and", dcpuOpCode.AND_OP },
                    { "bor", dcpuOpCode.BOR_OP },
                    { "xor", dcpuOpCode.XOR_OP },
                    { "ife", dcpuOpCode.IFE_OP },
                    { "ifn", dcpuOpCode.IFN_OP },
                    { "ifg", dcpuOpCode.IFG_OP },
                    { "ifb", dcpuOpCode.IFB_OP },
                };

            // Register dictionary, We'll only include the most common ones in here, others have to be constructred. 
            this.registerDictionary = new Dictionary<string, dcpuRegisterCodes>
                {
                    { "a", dcpuRegisterCodes.A },
                    { "b", dcpuRegisterCodes.B },
                    { "c", dcpuRegisterCodes.C },
                    { "x", dcpuRegisterCodes.X },
                    { "y", dcpuRegisterCodes.Y },
                    { "z", dcpuRegisterCodes.Z },
                    { "i", dcpuRegisterCodes.I },
                    { "j", dcpuRegisterCodes.J },
                    { "[a]", dcpuRegisterCodes.A_Mem },
                    { "[b]", dcpuRegisterCodes.B_Mem },
                    { "[c]", dcpuRegisterCodes.C_Mem },
                    { "[x]", dcpuRegisterCodes.X_Mem },
                    { "[y]", dcpuRegisterCodes.Y_Mem },
                    { "[z]", dcpuRegisterCodes.Z_Mem },
                    { "[i]", dcpuRegisterCodes.I_Mem },
                    { "[j]", dcpuRegisterCodes.J_Mem },
                    { "pop", dcpuRegisterCodes.POP },
                    { "peek", dcpuRegisterCodes.PEEK },
                    { "push", dcpuRegisterCodes.PUSH },
                    { "sp", dcpuRegisterCodes.SP },
                    { "pc", dcpuRegisterCodes.PC },
                    { "o", dcpuRegisterCodes.O },
                    { "[+a]", dcpuRegisterCodes.A_NextWord },
                    { "[+b]", dcpuRegisterCodes.B_NextWord },
                    { "[+c]", dcpuRegisterCodes.C_NextWord },
                    { "[+x]", dcpuRegisterCodes.X_NextWord },
                    { "[+y]", dcpuRegisterCodes.Y_NextWord },
                    { "[+z]", dcpuRegisterCodes.Z_NextWord },
                    { "[+i]", dcpuRegisterCodes.I_NextWord },
                    { "[+j]", dcpuRegisterCodes.J_NextWord }
                };
        }