Ejemplo n.º 1
0
        public void StackFrame_IsUsedToCalculateAddresses_InTheCurrentStackFrame_RelativeToTheStackFramePointer_r6()
        {
            var stackFrame = new StackFrame(3);

            Assert.That(stackFrame.Register6, Is.EqualTo(-1));
            Assert.That(stackFrame.Register5, Is.EqualTo(-2));
            Assert.That(stackFrame.Register4, Is.EqualTo(-3));
            Assert.That(stackFrame.Register3, Is.EqualTo(-4));
            Assert.That(stackFrame.Register2, Is.EqualTo(-5));
            Assert.That(stackFrame.Register1, Is.EqualTo(-6));
            Assert.That(stackFrame.Register0, Is.EqualTo(-7));
            Assert.That(stackFrame.ReturnAddress, Is.EqualTo(-8));
            Assert.That(stackFrame.Argn(2), Is.EqualTo(-9));
            Assert.That(stackFrame.Argn(1), Is.EqualTo(-10));
            Assert.That(stackFrame.Argn(0), Is.EqualTo(-11));
            Assert.That(stackFrame.ReturnValue, Is.EqualTo(-12));

            Assert.That(stackFrame.Address("t0"), Is.EqualTo(0));
            Assert.That(stackFrame.Address("t1"), Is.EqualTo(1));
            Assert.That(stackFrame.Address("t2"), Is.EqualTo(2));

            Assert.That(stackFrame.Address("arg0"), Is.EqualTo(stackFrame.Argn(0)));
            Assert.That(stackFrame.Address("arg1"), Is.EqualTo(stackFrame.Argn(1)));
            Assert.That(stackFrame.Address("arg2"), Is.EqualTo(stackFrame.Argn(2)));
        }