Пример #1
0
        public void TestSetAndReadBytes() //MOV AL, BH
        {
            byte[] test;
            RegistersController registry = new IndexRegisters();

            registry.SetBytesToRegistry("SI", 0, 1);
            test = registry.GetRegistry("SI");
            Assert.AreEqual(BitConverter.ToUInt16(test), 256);

            registry.SetBytesToRegistry("DI", 0, 255);
            test = registry.GetRegistry("DI");
            Assert.AreEqual(BitConverter.ToUInt16(test), 65280);

            registry.SetBytesToRegistry("SI", 1, 0, 1, 0, 1, 0);
            test = registry.GetRegistry("SI");
            Assert.AreEqual(BitConverter.ToUInt16(test), 1);

            registry.SetBytesToRegistry("DI", 255);
            test = registry.GetRegistry("DI");
            Assert.AreEqual(BitConverter.ToUInt16(test), 255);

            registry.SetBytesToRegistry("SI");
            test = registry.GetRegistry("SI");
            Assert.AreEqual(BitConverter.ToUInt16(test), 1);
        }
Пример #2
0
        public MainWindow()
        {
            InitializeComponent();

            MemoryModel.SetAddressBusLength = 20;
            MemoryModel.GetInstance().AddObserver(this);
            memoryView = new MemoryView();
            Go_Click(null, null);

            generalPurposeRegisters = new GeneralPurposeRegisters();
            indexRegisters          = new IndexRegisters();
            pointerRegisters        = new PointerRegisters();
            segmentRegisters        = new SegmentRegisters();

            commandInterpreter = InitDefaultRegistryCommander();

            generalPurposeRegistersView = new GeneralPurposeRegistersView(new HexParser());
            indexRegistersView          = new IndexRegistersView(new HexParser());
            pointerRegistersView        = new PointerRegistersView(new HexParser());
            segmentRegistersView        = new SegmentRegistersView(new HexParser());

            if (generalPurposeRegisters is Observable observableGeneralPurposeReg)
            {
                observableGeneralPurposeReg.AddObserver(generalPurposeRegistersView);
            }
            if (indexRegisters is Observable observableIndexReg)
            {
                observableIndexReg.AddObserver(indexRegistersView);
            }
            if (pointerRegisters is Observable observablePointersReg)
            {
                observablePointersReg.AddObserver(pointerRegistersView);
            }
            if (segmentRegisters is Observable observableSegmentsReg)
            {
                observableSegmentsReg.AddObserver(segmentRegistersView);
            }

            SetBlockDataContext();
        }