Personal blog discussing things I find interesting.
2.2.2 Basic Execution Environment
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
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