
La UCP tiene 14 registros internos, cada uno de 16 bits. Los primeros cuatro, AX, BX, CX, y DX son registros de uso general y también pueden ser útilizados como registros de 8 bits, para útilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX.
Los registros son conocidos por sus nombres específicos:
2.1 Relación del lenguaje ensamblador con los componentes internos del procesador
En
la memoria
se almacena la
información
en celdas especiales llamados
registros
los cuales tienen un nivel alto y un nivel bajo.
Unidad aritmética y
lógica
es la responsable de realizar como su nombre lo indica
operaciones
aritméticas y lógicas.
Unidad de
controlà
Se encarga de coordinar de que los otros componentes ejecuten las
operaciones
correctamente.
Bus
interno
àson
los canales por donde pasa la
información
que la máquina va a procesar (bus
de entrada) o procesada (bus de salida).
Registros de uso general
AX =
Registro
acumulador, dividido en AH y AL (8 bits cada uno).- Interviene en las
operaciones aritméticas y lógicas, después de la operación arroja un resultado.
BX =
Registro
base, dividido en BH y BL.- Se utiliza en transferencias de
datos
entre
la memoria
y el
procesador.
CX = Registro contador, dividido en CH y CL.- Se utiliza como contador en
bucles(LOOP), en operaciones con cadenas(REP), y en desplazamientos(CL).
DX = Registro de
datos,
dividido en DH y DL.- Se utiliza en operaciones de multiplicación y división
junto con Ax y en operaciones de entrada y salida de puertos, su mitad inferior
DL contiene el número de puertos.
Registros de Estado
Hay nueve
indicadores
de un bit en este registro de 16 bits. Los cuatro bits más significativos están
indefinidos, mientras que hay tres bits con
valores
determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno.
CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma)
o "préstamo" (en caso de resta). Este indicador es usado por instrucciones que
suman o restan números que ocupan varios bytes. Las instrucciones de rotación
pueden aislar un bit de la memoria o de un registro poniéndolo en el CF.
PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir,
un número par de bits a 1. Este indicador se puede utilizar para detectar
errores en transmisiones.
AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o
"préstamo" del nibble (cuatro bits) menos significativo al nibble más
significativo. Este indicador se usa con las instrucciones de ajuste decimal.
ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operación es
cero.
SF (Sign Flag, bit 7): Refleja el bit más significativo del resultado. Como los
números negativos se representan en la notación de complemento a dos, este bit
representa el signo: 0 si es positivo, 1 si es negativo.
TF (Trap Flag, bit 8): Si vale 1, el
procesador
está en modo paso a paso. En este modo, la
CPU
automáticamente genera una interrupción interna después de cada instrucción,
permitiendo inspeccionar los resultados del programa a medida que se ejecuta
instrucción por instrucción.
IF (Interrupt Flag, bit 9): Si vale 1, la
CPU
reconoce pedidos de interrupción externas. Si vale 0, no se reconocen tales
interrupciones
DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirán
"auto-decremento", esto es, se procesarán las cadenas desde las direcciones más
altas de memoria hacia las más bajas. Si vale 0, habrá "auto-incremento", lo que
quiere decir que las cadenas se procesarán de "izquierda a derecha".
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operación
aritmética con signo, esto es, un dígito significativo se perdió debido a que
tamaño del resultado es mayor que el tamaño del destino.