Skip to Content
Go Realm v1 is released 🎉
OSRegister Set

📌 CPU Register Set Summary

A register set refers to the collection of registers available in a CPU or microcontroller. Registers are small, fast storage locations used to hold data, addresses, or control information during instruction execution.

Typical CPU register set (like x86 / ARM)

RegisterTypeSizePurpose / Usage
General Purpose Registers ⬇️
AX / EAX / RAXGPR16 / 32 / 64-bitAccumulator for arithmetic & I/O operations
BX / EBX / RBXGPR16 / 32 / 64-bitBase register (memory addressing)
CX / ECX / RCXGPR16 / 32 / 64-bitCounter register (loops, shifts)
DX / EDX / RDXGPR16 / 32 / 64-bitData register (I/O, multiplication, division)
SI / ESI / RSIGPR16 / 32 / 64-bitSource index (string & memory operations)
DI / EDI / RDIGPR16 / 32 / 64-bitDestination index (string & memory ops)
SP / ESP / RSPGPR16 / 32 / 64-bitPoints to the top of the stack
BP / EBP / RBPGPR16 / 32 / 64-bitBase Pointer (stack frame reference)
Segment Registers ⬇️
CSSegment16-bitCode Segment (instruction fetching)
DSSegment16-bitData Segment (default data)
SSSegment16-bitStack Segment
ES, FS, GSSegment16-bitExtra segments for special purposes
Instruction & Control Registers ⬇️
IP / EIP / RIPControl16 / 32 / 64-bitInstruction Pointer (next instruction address)
FLAGS / EFLAGS / RFLAGSControl16 / 32 / 64-bitStatus & control flags (carry, zero, sign, overflow, etc.)
Floating Point & SIMD Registers ⬇️
ST0–ST7FPU80-bitFloating Point Unit stack registers
XMM0–XMM15SIMD128-bitSSE instructions (single-instruction multiple-data)
YMM0–YMM15SIMD256-bitAVX instructions
ZMM0–ZMM31SIMD512-bitAVX-512 instructions
Special Registers ⬇️
CR0–CR4, CR8Control32/64-bitControl registers (paging, protection, system control)
DR0–DR7Debug32/64-bitHardware debugging registers
GDTR / IDTRDescriptor48-bitGlobal/Interrupt Descriptor Table base & limit
LDTRDescriptor16-bitLocal Descriptor Table register
TRTask16-bitTask Register (task state segment)

Notes

  • GPR = General Purpose Register.

  • The naming (AX/EAX/RAX, etc.) depends on mode:

    • 16-bit: AX
    • 32-bit: EAX
    • 64-bit: RAX
  • Control registers are privileged (OS-level use).

  • SIMD registers are used in modern CPUs for vectorized computation.


Register Set Explanation - Summary Table

Register TypePurposeExamples (x86)
General-PurposeStores data, addresses, and intermediate results.EAX, EBX, ECX, EDX
AccumulatorUsed for arithmetic/logical operations (often holds results).AX (16-bit), EAX (32-bit)
Stack Pointer (SP)Points to the top of the stack (used for function calls/local variables).ESP (32-bit), RSP (64-bit)
Program Counter (PC)Holds the address of the next instruction to execute.EIP (32-bit), RIP (64-bit)
Status/FlagsStores condition flags (Zero, Carry, Overflow, etc.).EFLAGS (x86)
Vector/SIMDUsed for parallel processing (Single Instruction, Multiple Data).YMM0-YMM15 (AVX)