Los registros de uso general se utilizan para almacenar datos temporales dentro del microprocesador. Hay 8 registros de propósito general en el microprocesador 8086.
1. AX: Este es el acumulador. Es de 16 bits y se divide en dos registros AH y AL de 8 bits para realizar también instrucciones de 8 bits. Generalmente se usa para instrucciones aritméticas y lógicas, pero en el microprocesador 8086 no es obligatorio tener un acumulador como operando de destino. Ejemplo:
ADD AX, AX (AX = AX + AX)
2. BX: Este es el registro base. Es de 16 bits y se divide en dos registros BH y BL de 8 bits para realizar también instrucciones de 8 bits. Se utiliza para almacenar el valor del desplazamiento. Ejemplo:
MOV BL, [500] (BL = 500H)
3. CX: Este es el registro del contador. Es de 16 bits y se divide en dos registros CH y CL de 8 bits para realizar también instrucciones de 8 bits. Se utiliza en looping y rotación. Ejemplo:
MOV CX, 0005 LOOP
4. DX: Este es el registro de datos. Es de 16 bits y se divide en dos registros DH y DL de 8 bits para realizar también instrucciones de 8 bits. Se utiliza en la multiplicación y direccionamiento de puertos de entrada/salida. Ejemplo:
MUL BX (DX, AX = AX * BX)
5. SP: este es el puntero de la pila. Es de 16 bits. Apunta al elemento superior de la pila. Si la pila está vacía, el puntero de la pila será (FFFE)H. Su dirección de desplazamiento es relativa al segmento de la pila.
6. BP: este es el puntero base. Es de 16 bits. Se utiliza principalmente para acceder a los parámetros pasados por la pila. Su dirección de desplazamiento es relativa al segmento de la pila.
7. SI: este es el registro de índice de origen. Es de 16 bits. Se utiliza en el direccionamiento de punteros de datos y como fuente en algunas operaciones relacionadas con strings. Su desplazamiento es relativo al segmento de datos.
8. DI: este es el registro de índice de destino. Es de 16 bits. Se utiliza en el direccionamiento de punteros de datos y como destino en algunas operaciones relacionadas con strings. Su desplazamiento es relativo al segmento adicional.