示例#1
0
            public void SimpleAssembleTest()
            {
                var source = new[]
                {
                    "ADD R0, R0, #10",
                    "NOT R1, R1",
                    "AND R2, R0, #0",
                    "OUT",
                    "HALT"
                };
                var assembled = new NeoAssembler(new Parser().Parse(source)).Assemble();

                Assert.Equals(assembled[0], 0x102A);
                Assert.Equals(assembled[1], 0x927F);
                Assert.Equals(assembled[2], 0x5420);
                Assert.Equals(assembled[3], 0xF021);
                Assert.Equals(assembled[4], 0xF025);
            }
示例#2
0
            private static void RunLC3(Options options)
            {
                var lc3     = new LC3();
                var program = new NeoAssembler(new Parser().ParseFile(options.program)).Assemble();

                foreach (var mem in program)
                {
                    lc3.memory.Write(mem.Key, mem.Value);
                }

                while (lc3.Active)
                {
                    lc3.Execute();
                }

                if (lc3.status == LC3.Status.ERROR)
                {
                    Console.Error.Write("Program unexpectedly exits");
                }
            }