CPU Register - General Purpose Register (GPR)

Z80 Registers


The General purpose registers are available for storing:


CPU - Word size (8, 16, 32 and 64-bit)


Register Name Use
EAX Accumulator Accumulator for operands and results data, Used in arithmetic operations
EBX Base Pointer to data in the DS segment
ECX Counter Counter for string, loop and shift/rotate operations
EDX Data I/O pointer, used in arithmetic operations and I/O operations.
Stream Operations
ESI Source Index Pointer to data in the segment pointed to by the DS register; source pointer for string operations, Used as a pointer to a source in stream operations
EDI Destination Index Pointer to data (or destination) in the segment pointed to by the ES register; destination pointer for string operations, Used as a pointer to a destination in stream operations
ESP Stack pointer Stack pointer (in the SS segment), Pointer to the top of the stack. As a general rule it should not be used for another purpose.
EBP Base Pointer Base Pointer to data on the stack (in the SS segment), point to the base of the stack


The following bit can be referenced by name:

  • The lower 16 bits of the 32-bit general-purpose registers that map directly to the register set found in the 8086 and Intel 286 processors (.X)
  • Each of the lower two bytes of the registers (.H for high and .L for low)

General Purpose Register 16 32 Bit

16-bit register high bytes name low bytes 32-bit register


The Registers only available in 64-bit mode are R8-R15 and XMM8-XMM15.

Addressable General Purpose Registers:

operand size Register Type Available Registers (With Rex) Available Registers (Without REX)
8-bit Byte Registers AL, BL, CL, DL, DIL, SIL, BPL, SPL, R8L - R15L AL, BL, CL, DL, AH, BH, CH, DH
16-bit Word Registers AX, BX, CX, DX, DI, SI, BP, SP, R8W - R15W AX, BX, CX, DX, DI, SI, BP, SP
32-bit Doubleword Registers EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, R8D - R15D EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP
64-bit Quadword Registers RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, R8-R15 NA

REX prefixes are used to generate 64-bit operand sizes or to reference registers R8-R15.

Documentation / Reference

  • Vol1 - 3.4 - Basic Program execution registers - https://software.intel.com/en-us/articles/intel-sdm
  • The special uses of general-purpose registers by instructions are described in Chapter 5, “Instruction Set Summary,” in this volume. See also: Chapter 3, Chapter 4 and Chapter 5 of Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volumes 2A, 2B & 2C

Discover More
Card Puncher Data Processing
Assembly - System Call

Put the system call number in the EAX register. Put the arguments: if =< 6, in order in the following register: EBX, ECX, EDX, ESI, EDI, and EBP If >6, the memory location of the first argument is...
Z80 Registers
Device - Register

Register is a hardware device component that is used for two purposes: storage of value (at high speed). See passing argument and retrieving return value (to communicate between hardware devices)....
Cpu Memory Management Segmented Model
Memory Segment - Data Segment (DS) - (ES, FS, GS)

The data segment are a segments that stores the data bit type. The availability of four data segments permits efficient and secure access to different types of data structures. For example, four...
Cpu Memory Management Segmented Model
Memory Segment - Segment Selector

A segment selector is the unique identifier of a segment and is used in the first part of logical address. See logical address syntax It is a special pointer that identifies a segment in memory. Its...
Cpu Memory Management Segmented Model
Memory Segment - Stack Segment (SS)

The Stack Segment is a segment that holds a stack. It's a stack implementation of memory locations. As the stack is a segment, it is a contiguous array of memory locations. When using: the...
Z80 Registers
Processor - (Execution) Register

Register for a processor. They are located inside the processor. They are the quickest memory and are then located at the top of the memory hierarchy. Zoom of CPU register of the Z80 processor (Source)...
Cpu Moore Law Transistor
Stack Pointer Register (ESP)

The stack pointer register is holds in the ESP general purpose register As a general rule should not be used for another purpose.

Share this page:
Follow us:
Task Runner