Registers and instruction + Intel 8086 registers 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (bit position) Main registers AH AL AX (primary accumulator) 0 0 0 0 BH BL BX (base, accumulator) CH CL CX (counter, accumulator) DH DL DX (accumulator, extended acc) Index registers 0 0 0 0 SI Source Index 0 0 0 0 DI Destination Index 0 0 0 0 BP Base Pointer 0 0 0 0 SP Stack Pointer Program counter 0 0 0 0 IP Instruction Pointer Segment registers CS 0 0 0 0 Code Segment DS 0 0 0 0 Data Segment ES 0 0 0 0 Extra Segment SS 0 0 0 0 Stack Segment Status register - - - - O D I T S Z - A - P - C Flags The 8086 has eight more-or-less general 16-bit registers (including the stack pointer but excluding the instruction pointer, flag register and segment registers). Four of them, AX, BX, CX, DX, can also be accessed as 8-bit register pairs (see figure) while the other four, SI, DI, BP, SP, are 16-bit only.
Registers and instruction + Intel 8086 registers 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (bit position) Main registers AH AL AX (primary accumulator) 0 0 0 0 BH BL BX (base, accumulator) CH CL CX (counter, accumulator) DH DL DX (accumulator, extended acc) Index registers 0 0 0 0 ,SI Source Index 0 0 0 0 DI Destination Index 0 0 0 0 BP Base Pointer 0 0 0 0 SP Stack Pointer Program counter 0 0 0 0 IP Instruction Pointer Segment registers CS 0 0 0 0 Code Segment DS 0 0 0 0 Data Segment ES 0 0 0 0 Extra Segment SS 0 0 0 0 Stack Segment Status register - - - - O D I T S Z - A - P - C Flags The 8086 has eight more-or-less general 16-bit registers (including the stack pointer but excluding the instruction pointer, flag register and segment registers). Four of them, AX, BX, CX, DX, can also be accessed as 8-bit register pairs (see figure) while the other four SI, DI, BP, SP, are 16-bit only.