Jin's blog

Registers in x86 operating system

Preface

Recently I try to implement a 32-bit microkernel with zig, but I always forget the purpose of register, so record here.

General Purpose Registers

64-bit32-bit16-bit8 high bits8 low bitsDescription
RAXEAXAXAHALAccumulator
RBXEBXBXBHBLBase
RCXECXCXCHCLCounter
RDXEDXDXDHDLData
RSIESISIN/ASILSource
RDIEDIDIN/ADILDestination
RSPESPSPN/ASPLStack Pointer
RBPEBPBPN/ABPLStack Base Pointer

Pointer Registers

64-bit32-bit16-bitDescription
RIPEIPIPInstruction Pointer

Segment Registers

16-bitDescription
CSCode Segment
DSData Segment
ESExtra Segment
SSStack Segment
FSGeneral Purpose F Segment
GSGeneral Purpose G Segment

Reference