Skip to content

CPU Registers

General Purpose Registers

32-bit

RegisterDescriptionUsage
eaxAccumulatorArithmetic operations, I/O port access, interrupt calls, and some other operations
ebxBasePointer to data in the DS segment
ecxCounterLoop counter for string and loop operations
edxDataI/O port access, arithmetic operations
esiSourcePointer to data in the segment pointed to by the DS register; source pointer for string operations
ediDestinationPointer to data (or destination) in the segment pointed to by the ES register; destination pointer for string operations
espStackPointer to the current location on the stack
ebpBase PointerPointer to data on the stack
eipInstruction PointerPointer to the next instruction to be executed

64-bit

RegisterDescriptionUsage
raxAccumulatorArithmetic operations, I/O port access, interrupt calls, and some other operations
rbxBasePointer to data in the DS segment
rcxCounterLoop counter for string and loop operations
rdxDataI/O port access, arithmetic operations
rsiSourcePointer to data in the segment pointed to by the DS register; source pointer for string operations
rdiDestinationPointer to data (or destination) in the segment pointed to by the ES register; destination pointer for string operations
rspStackPointer to the current location on the stack
rbpBase PointerPointer to data on the stack
ripInstruction PointerPointer to the next instruction to be executed

Segment Registers

RegisterDescriptionUsage
csCode SegmentPointer to the current code segment
dsData SegmentPointer to the current data segment
esExtra SegmentPointer to an extra data segment
fsExtra SegmentPointer to an extra data segment
gsExtra SegmentPointer to an extra data segment
ssStack SegmentPointer to the current stack segment