The 8086 provides 16‑bit general‑purpose registers divided into pairs that can be accessed as separate 8‑bit registers. Its register file includes:
*'''Data Registers:''' AX (accumulator), BX(base), CX (counter), and DX—each accessible as high (AH, BH, CH, DH) and low (AL, BL, CL, DL) 8‑bit registers.
*'''Pointer and Index Registers:''' SP (stack pointer), BP (base pointer), SI (source index), and DI (destination index) used for addressing and data manipulation.
*'''Segment Registers:''' CS (code), DS (data), SS (stack), and ES (extra) which define the memory segments for program code, data, and the stack.