Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

General purpose registers in 8086 microprocessor

  • Difficulty Level : Basic
  • Last Updated : 27 Apr, 2018

General purpose registers are used to store temporary data within the microprocessor. There are 8 general purpose registers in 8086 microprocessor.


Figure – General purpose registers

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

 

  1. AX – This is the accumulator. It is of 16 bits and is divided into two 8-bit registers AH and AL to also perform 8-bit instructions.
    It is generally used for arithmetical and logical instructions but in 8086 microprocessor it is not mandatory to have accumulator as the destination operand.



    Example:

    ADD AX, AX (AX = AX + AX)
  2. BX – This is the base register. It is of 16 bits and is divided into two 8-bit registers BH and BL to also perform 8-bit instructions.
    It is used to store the value of the offset.

    Example:

    MOV BL, [500] (BL = 500H)
  3. CX – This is the counter register. It is of 16 bits and is divided into two 8-bit registers CH and CL to also perform 8-bit instructions.
    It is used in looping and rotation.

    Example:

    MOV CX, 0005
    LOOP
    
  4. DX – This is the data register. It is of 16 bits and is divided into two 8-bit registers DH and DL to also perform 8-bit instructions.
    It is used in multiplication an input/output port addressing.

    Example:

    MUL BX (DX, AX = AX * BX)
    
  5. SP – This is the stack pointer. It is of 16 bits.
    It points to the topmost item of the stack. If the stack is empty the stack pointer will be (FFFE)H. It’s offset address relative to stack segment.
  6. BP – This is the base pointer. It is of 16 bits.
    It is primary used in accessing parameters passed by the stack. It’s offset address relative to stack segment.
  7. SI – This is the source index register. It is of 16 bits.
    It is used in the pointer addressing of data and as a source in some string related operations. It’s offset is relative to data segment.
  8. DI – This is the destination index register. It is of 16 bits.
    It is used in the pointer addressing of data and as a destination in some string related operations.It’s offset is relative to extra segment.
My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!