Para ayudar al funcionamiento de las instrucciones, para poder manejar variables en memoria y para su propio funcionamiento, el microprocesador dispone de una serie de “variables” internas de nombres fijos que son los registros internos. En total hay 14 de estos registros, como se puede observar en la figura mostrada a continuacion, cada uno de los cuales está pensado principalmente para alguna función concreta.

A continuación se detallan cada uno de estos registros, divididos según áreas de funcionalidad:
Registros de almacenamiento temporal
- AX (registro Acumulador): Este registro es usado, sobre todo, en operaciones aritméticas como primer operando y también como registro de propósito general a disposición del programador.
- BX (registro Base): Se usa principalmente para indicar posiciones de memoria (offset).
- CX (registro Contador): Este registro se usa siempre que se necesite un contador en operaciones repetitivas y bucles.
- DX (registro Dato): Se usa como registro auxiliar en operaciones aritméticas y como contenedor de datos a la hora de usar instrucciones de comunicación de puertos.
Estos cuatro registros, como todos los restantes, son de 16 bits, pero para permitir la realización de operaciones de tipo byte (8 bits) cada uno de estos cuatro registros está dividido en dos subregistros de 8 bits a los que se puede acceder de forma independiente (como se observa en la figura 1.2) . Así, por ejemplo, los 8 bits inferiores de AX se llaman AL (L de low, bajo) y los 8 superiores AH (H de high, alto). En consecuencia, BX, CX y DX se dividen en BH/BL, CH/CL y DH/DL respectivamente. De esta forma se tiene que todas las instrucciones ensamblador pueden operar con datos de 8 y 16 bits según lo que se precise. En los demás registros esta subdivisión no es posible.
Registros de segmento
Son cuatro registros de 16 bits usados para indicar direcciones de memoria (los conceptos de segmento y desplazamiento se explicarán en el apartado siguiente):
- CS (Code Segment): Este registro es usado por el procesador, junto con el registro IP, para conocer dónde está la instrucción actual que está siendo ejecutada.
- DS (Data Segment): Se usa para indicar dónde están todos los datos del programa en ejecución.
- SS (Stack Segment): En este registro se indica al procesador dónde está la zona de memoria que se usa como segmento de pila.
- ES (Extra Segment): Es el registro que referencia al segmento extra, y se usa como apuntador de memoria auxiliar en operaciones complejas donde se necesitan dos punteros de datos simultáneos.
Registros de la Pila
La pila es un área de memoria importante. Tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar su contenido. Se usan como complemento al registro SS y son:
- SP (Stack Pointer): Es el registro que se reserva el procesador para uso propio en instrucciones de manipulación de la pila.
- BP (Base Pointer): Se usa como registro auxiliar
Registros de Indices
Se utilizan como desplazamientos complementarios para DS y ES a la hora de indicar la posición donde se encuentran los datos a los que se desea acceder. Son lo siguiente:
- SI (Source index): Se usa como puntero origen en operaciones de desplazamiento de datos entre dos zonas de memoria.
- DI (Destination index): Se usa como destino en operaciones de desplazamiento de datos.
