Ejemplo n.º 1
0
        public void Um32_ReadRegister()
        {
            Um32 um32 = BuildUm32();

            um32.AssignRegister(0, 23);
            Assert.AreEqual(um32.ReadRegister(0), um32.Registers[0]);

            um32.AssignRegister(5, 48);
            Assert.AreEqual(um32.ReadRegister(5), um32.Registers[5]);
        }
Ejemplo n.º 2
0
        public void Um32_AssignRegister()
        {
            Um32 um32 = BuildUm32();

            um32.AssignRegister(0, 23);
            Assert.AreEqual((uint)23, um32.Registers[0]);

            um32.AssignRegister(5, 48);
            Assert.AreEqual((uint)48, um32.Registers[5]);
        }
Ejemplo n.º 3
0
        public void Um32_ReadRegister_OutOfRange()
        {
            Um32 um32 = BuildUm32();

            um32.AssignRegister(0, 23);
            Assert.AreEqual(um32.ReadRegister(8), um32.Registers[0]);
        }
Ejemplo n.º 4
0
        public void Um32_AssignRegister_OutOfRange()
        {
            Um32 um32 = BuildUm32();

            um32.AssignRegister(8, 23);
            Assert.AreEqual((uint)23, um32.Registers[0]);
        }
Ejemplo n.º 5
0
        public void Um32_Nand()
        {
            Um32 um32   = BuildUm32();
            uint aIndex = 0;
            uint bIndex = 1;
            uint cIndex = 7;

            um32.AssignRegister(aIndex, 0); // A
            um32.AssignRegister(bIndex, 6); // B
            um32.AssignRegister(cIndex, 5); // C
            var platter = new Platter(0)
                          .SetOperation(OperatorConstants.NotAnd)
                          .SetRegisterA(aIndex)
                          .SetRegisterB(bIndex)
                          .SetRegisterC(cIndex);

            um32.DischargeOperator(platter);

            Assert.AreEqual((uint)7, um32.ReadRegister(aIndex));
        }
Ejemplo n.º 6
0
        public void Um32_ConditionalMove_False()
        {
            Um32 um32   = BuildUm32();
            uint aIndex = 0;
            uint bIndex = 1;
            uint cIndex = 7;

            um32.AssignRegister(aIndex, 0);  // A
            um32.AssignRegister(bIndex, 23); // B
            um32.AssignRegister(cIndex, 0);  // C
            var platter = new Platter(0)
                          .SetOperation(OperatorConstants.ConditionalMove)
                          .SetRegisterA(aIndex)
                          .SetRegisterB(bIndex)
                          .SetRegisterC(cIndex);

            um32.DischargeOperator(platter);

            Assert.AreEqual((uint)0, um32.ReadRegister(aIndex));
        }