Esempio n. 1
0
        public void MicroSimulatorTests_ProfTest3_Success()
        {
            string[] asmLines = FileManager.Instance.ToReadFile(test3);

            Lexer lexer = new Lexer(asmLines);

            Parser parser = new Parser(lexer);

            Compiler assembler = new Compiler(parser);

            assembler.Compile();

            string[] objData = assembler.GetOutput();

            VirtualMemory vm = new VirtualMemory(objData);

            MicroSimulator micro = new MicroSimulator(vm);

            int i = 0;

            while (i < 1000)
            {
                micro.NextInstruction();
                i++;
            }
            Console.WriteLine(micro.MicroRegisters);
            Console.WriteLine(vm.ToString());

            Assert.AreEqual("Registers[0,0,0,0,0,12,15,125]", micro.MicroRegisters.ToString());
        }
Esempio n. 2
0
        public void MicroSimulatorTests_ProfTest1_Success()
        {
            string[] asmLines = FileManager.Instance.ToReadFile(test1);
            string[] expected = FileManager.Instance.ToReadFile(test1Comparison);

            Lexer lexer = new Lexer(asmLines);

            Parser parser = new Parser(lexer);

            Compiler assembler = new Compiler(parser);

            assembler.Compile();

            string[] objData = assembler.GetOutput();

            VirtualMemory vm = new VirtualMemory(objData);

            MicroSimulator micro = new MicroSimulator(vm);

            int i       = 0;
            int counter = 0;

            while (i < 6)
            {
                micro.NextInstruction();
                Console.WriteLine(micro.CurrentInstruction);
                Assert.AreEqual(expected[counter++], micro.CurrentInstruction.ToString());

                if (micro.CurrentInstruction.Equals(micro.PreviousInstruction))
                {
                    i++;
                }
            }
            Console.WriteLine(micro.MicroRegisters);
            Assert.AreEqual("Registers[0,8,5,49,10,0,0,0]", micro.MicroRegisters.ToString());

            Console.WriteLine(vm.ToString());
        }