- Address Space
- 32-bit protected mode allows addressing of 4Gb of memory
- PAE allows addressing up to 64Gb of memory
- Real address mode allows addressing of 1Mb of memory
- Basic Program Execution Registers
- General Purpose Registers
- EAX: Automatically used for multiply/divide called “extended accumulator register”
- ECX: Automatically uses as a loop counter “extended counter register”
- ESP: Contains of the address of the top of the stack in the current execution context, “extended stack pointer register”
- EBP: Contains the bottom of the stack for the current execution context, “extended base pointer register”
- ESI and EDI: Used for high speed memory transfer “extended source/destination index registers”
- EBX, EDX
- Segment Registers
- Real Address Mode: 16 bit memory segments with predefined base addresses
- Protected Mode: Holds pointers to segment descriptor tables which may contain code (instructions), data (variables), and stack segment for local variables and parameters
- Instruction Pointer: EIP contains the address of the next instruction
- EFLAGS Register: Binary bits with flags representing things like carry, interrupts, etc
- General Purpose Registers
- MMX Registers
- Used to improve the performance of multimedia applications (video/communication)
- Eight 64 bit registers
- Support for special SIMD (Single instruciton, multiple data) instructions
- Allows parallel processing of the data
- In fact all 8 registers are aliases for the same registers used for FP calculations
- XMM Registers
- Eight 128 bit registers
- Floating Point Units
- Labeled as ST(0) to ST(7)