Assembly Language Registers x64 Registers


Example

The x64 architecture is the evolution of the older x86 architecture, it kept compatibility with its predecessor (x86 registers are still available) but it also introduced new features:

  • Registers have now a capacity of 64 bits;
  • There are 8 more general-purpose registers;
  • Segment registers are forced to 0 in 64 bits mode;
  • The lower 32, 16 and 8 bits of each register are now available.

General-purpose

RegisterNameSubregisters(bits)
RAXAccumulatorEAX(32), AX(16), AH(8), AL(8)
RBXBaseEBX(32), BX(16), BH(8), BL(8)
RCXCounterECX(32), CX(16), CH(8), CL(8)
RDXDataEDX(32), DX(16), DH(8), DL(8)
RSISourceESI(32), SI(16), SL(8)
RDIDestinationEDI(32), DI(16), DL(8)
RBPBase pointerEBP(32), BP(16), BPL(8)
RSPStack pointerESP(32), SP(16), SPL(8)
R8-R15New registersR8D-R15D(32), R8W-R15W(16), R8B-R15B(8)

Note

The suffixes used to address the lower bits of the new registers stand for:

  • B byte, 8 bits;
  • W word, 16 bits;
  • D double word, 32 bits.