(i) General Purpose Registers of 8086 1. AX (Accumulator) – Used to store the result for arithmetic / logical operations All I/O data transfer using IN & OUT instructions use “A” register(AH / AL or AX). 2. BX – Base – used to hold the offset address or data in indirect addressing mode. 3. CX – acts as a counter for repeating or looping instructions. 4. DX –Used with AX to hold 32 bit values during multiplication and division. Used to hold address of I/O port in indirect addressing mode. 5. BP – Base Pointer BP can hold offset address of any location in the stack segment. It is used to access random locations of stack. 6. SP –Stack Pointer – Contains the offset of the top of the stack. SP is used with SS register to calculate 20-bit physical address. Used during instructions like PUSH,POP,CALL,RET etc. 7. SI – Source Index – Used in string movement instructions. Holds offset address of source data in Data segment during string operations. Used to hold offset address of data segment. 8.DI – Destination Index – acts as the destination for string movement instructions Used to hold offset address of Extra segment.