Exemple #1
0
        public CPU()
        {
            PMode = false;
            segments = new Segment[6];
            registers = new Register[9];
            controlRegisters = new uint[5];
            idtRegister = new TableRegister();
            gdtRegister = new TableRegister();
            disasm = new Disassembler(DisassemblerRead);

            disasm.CodeSize = codeSize;
            ProcessOperations();
            realModeEntry = new GDTEntry
                                {
                                    BaseAddress = 0,
                                    Is32Bit = false,
                                    IsAccessed = true,
                                    IsCode = false,
                                    Limit = 0xffff,
                                    IsWritable = true
                                };

            Halted = false;

            interruptOperand = new Operand();
            interruptOperand.Size = 8;
            interruptOperand.Type = OperandType.Immediate;

            Reset();
        }
Exemple #2
0
        public CPU()
        {
            PMode            = false;
            segments         = new Segment[6];
            registers        = new Register[9];
            controlRegisters = new uint[5];
            idtRegister      = new TableRegister();
            gdtRegister      = new TableRegister();
            disasm           = new Disassembler(DisassemblerRead);

            disasm.CodeSize = codeSize;
            ProcessOperations();
            realModeEntry = new GDTEntry
            {
                BaseAddress = 0,
                Is32Bit     = false,
                IsAccessed  = true,
                IsCode      = false,
                Limit       = 0xffff,
                IsWritable  = true
            };

            Halted = false;

            interruptOperand      = new Operand();
            interruptOperand.Size = 8;
            interruptOperand.Type = OperandType.Immediate;

            Reset();
        }