示例#1
0
        public CPUx86()
        {
            EIP    = new Register32Bit("EIP", 0, RegisterType.InstructionPointer, false);
            EFLAGS = new FlagsRegister();

            EAX = new GeneralPurposeRegister("EAX", 0);
            EBX = new GeneralPurposeRegister("EBX", 1);
            ECX = new GeneralPurposeRegister("ECX", 2);
            EDX = new GeneralPurposeRegister("EDX", 3);
            ESP = new GeneralPurposeRegister("ESP", 4);
            EBP = new GeneralPurposeRegister("EBP", 5);
            ESI = new GeneralPurposeRegister("ESI", 6);
            EDI = new GeneralPurposeRegister("EDI", 7);

            CR0 = new CR0();
            CR2 = new ControlRegister("CR2", 2);
            CR3 = new ControlRegister("CR3", 3);
            CR4 = new ControlRegister("CR3", 4);

            AX = new Legacy16BitRegister("AX", EAX);
            BX = new Legacy16BitRegister("BX", EBX);
            CX = new Legacy16BitRegister("CX", ECX);
            DX = new Legacy16BitRegister("DX", EDX);
            SI = new Legacy16BitRegister("SI", ESI);
            DI = new Legacy16BitRegister("DI", EDI);
            BP = new Legacy16BitRegister("BP", EBP);

            AL = new Legacy8BitLowRegister("AL", EAX);
            BL = new Legacy8BitLowRegister("BL", EBX);
            CL = new Legacy8BitLowRegister("CL", ECX);
            DL = new Legacy8BitLowRegister("DL", EDX);

            AH = new Legacy8BitHighRegister("AH", EAX);
            BH = new Legacy8BitHighRegister("BH", EBX);
            CH = new Legacy8BitHighRegister("CH", ECX);
            DH = new Legacy8BitHighRegister("DH", EDX);

            XMM0 = new RegisterFloatingPoint("XMM0", 0, RegisterType.FloatingPoint);
            XMM1 = new RegisterFloatingPoint("XMM1", 1, RegisterType.FloatingPoint);
            XMM2 = new RegisterFloatingPoint("XMM2", 2, RegisterType.FloatingPoint);
            XMM3 = new RegisterFloatingPoint("XMM3", 3, RegisterType.FloatingPoint);
            XMM4 = new RegisterFloatingPoint("XMM4", 4, RegisterType.FloatingPoint);
            XMM5 = new RegisterFloatingPoint("XMM5", 5, RegisterType.FloatingPoint);
            XMM6 = new RegisterFloatingPoint("XMM6", 6, RegisterType.FloatingPoint);
            XMM7 = new RegisterFloatingPoint("XMM7", 7, RegisterType.FloatingPoint);

            ST0 = new RegisterFloatingPoint("ST0", -1, RegisterType.FloatingPoint);

            CS = new SegmentRegister("CS", 0);
            DS = new SegmentRegister("DS", 1);
            ES = new SegmentRegister("ES", 2);
            FS = new SegmentRegister("FS", 3);
            GS = new SegmentRegister("GS", 4);
            SS = new SegmentRegister("SS", 5);

            Reset();
        }
示例#2
0
        public CPUx86()
        {
            EIP = new Register32Bit("EIP", 0, RegisterType.InstructionPointer, false);
            EFLAGS = new FlagsRegister();

            EAX = new GeneralPurposeRegister("EAX", 0);
            EBX = new GeneralPurposeRegister("EBX", 1);
            ECX = new GeneralPurposeRegister("ECX", 2);
            EDX = new GeneralPurposeRegister("EDX", 3);
            ESP = new GeneralPurposeRegister("ESP", 4);
            EBP = new GeneralPurposeRegister("EBP", 5);
            ESI = new GeneralPurposeRegister("ESI", 6);
            EDI = new GeneralPurposeRegister("EDI", 7);

            CR0 = new CR0();
            CR2 = new ControlRegister("CR2", 2);
            CR3 = new ControlRegister("CR3", 3);
            CR4 = new ControlRegister("CR3", 4);

            AX = new Legacy16BitRegister("AX", EAX);
            BX = new Legacy16BitRegister("BX", EBX);
            CX = new Legacy16BitRegister("CX", ECX);
            DX = new Legacy16BitRegister("DX", EDX);
            SI = new Legacy16BitRegister("SI", ESI);
            DI = new Legacy16BitRegister("DI", EDI);
            BP = new Legacy16BitRegister("BP", EBP);

            AL = new Legacy8BitLowRegister("AL", EAX);
            BL = new Legacy8BitLowRegister("BL", EBX);
            CL = new Legacy8BitLowRegister("CL", ECX);
            DL = new Legacy8BitLowRegister("DL", EDX);

            AH = new Legacy8BitHighRegister("AH", EAX);
            BH = new Legacy8BitHighRegister("BH", EBX);
            CH = new Legacy8BitHighRegister("CH", ECX);
            DH = new Legacy8BitHighRegister("DH", EDX);

            XMM0 = new RegisterFloatingPoint("XMM0", 0, RegisterType.FloatingPoint);
            XMM1 = new RegisterFloatingPoint("XMM1", 1, RegisterType.FloatingPoint);
            XMM2 = new RegisterFloatingPoint("XMM2", 2, RegisterType.FloatingPoint);
            XMM3 = new RegisterFloatingPoint("XMM3", 3, RegisterType.FloatingPoint);
            XMM4 = new RegisterFloatingPoint("XMM4", 4, RegisterType.FloatingPoint);
            XMM5 = new RegisterFloatingPoint("XMM5", 5, RegisterType.FloatingPoint);
            XMM6 = new RegisterFloatingPoint("XMM6", 6, RegisterType.FloatingPoint);
            XMM7 = new RegisterFloatingPoint("XMM7", 7, RegisterType.FloatingPoint);

            ST0 = new RegisterFloatingPoint("ST0", -1, RegisterType.FloatingPoint);

            CS = new SegmentRegister("CS", 0);
            DS = new SegmentRegister("DS", 1);
            ES = new SegmentRegister("ES", 2);
            FS = new SegmentRegister("FS", 3);
            GS = new SegmentRegister("GS", 4);
            SS = new SegmentRegister("SS", 5);

            Reset();
        }
示例#3
0
 public Legacy8BitLowRegister(string name, GeneralPurposeRegister register)
     : base(name, register.Index, register.RegisterType, 8, register.Physical)
 {
     this.register = register;
 }
示例#4
0
 public Legacy8BitLowRegister(string name, GeneralPurposeRegister register)
     : base(name, register.Index, register.RegisterType, 8, register.Physical)
 {
     this.register = register;
 }