示例#1
0
        public void TestReturnProcedure()
        {
            var cpu = new CPU();
            cpu.StackPush(10 << 2);

            var instructionAdd = new ReturnProcedure("rp", 0);

            cpu.AddInstruction(instructionAdd);

            cpu.RunClock();
            Assert.AreEqual("rp", instructionAdd.GetFetch(), false);

            cpu.RunClock();
            Assert.AreEqual("RP: ", instructionAdd.GetDecode(), false);

            //Jump should have been taken
            Assert.AreEqual(10 << 2, cpu.GetPC());
        }