El 8086 es un microprocesador de 16 bits, consta de una unidad de ejecución
(EU: Execution Unit) y una unidad interfaz del bus (BIU: Bus Interface Unit).
·
Unidad de Ejecución (EU). Es la encargada del proceso de
las instrucciones del CPU. Está conformada por los registros generales, los
registros índices y apuntadores, los flags, la unidad aritmética lógica, y la lógica de control que
maneja todo el proceso para ejecutar las instrucciones
·
Unidad de Interfaz del Bus (BIU).
Realiza la búsqueda
de datos e instrucciones. Asi como también
se encarga del control de la interacción del CPU y los elementos externos. Está conformada una cola de
6 bytes para instrucciones, por los registros de segmento y lógica para controlar los buses externos
del microprocesador.
REGISTROS
El
8086 tienen 14 registros de 16 bits, de los
cuales 4 son de propósito general que también pueden ser accedidos como
ocho registros de 8 bits, 4
registros de segmentos, 2 de índices, 2 punteros de pila y un registro de indicadores de estado
(flags).
Registros
de Propósito General
Estos
son el AX, BX, CX, y DX, de 16 bits. Cada uno de ellos se pueden dividir en dos
registros de 8 bits, llamados registros altos (Hight) AH , BH, CH, DH y DL, y
en registros de nivel bajo (Low) AL, BL, CL, y DL .
- Registro AX: Se denomina acumulador de 16 bits, es
utilizado para operaciones que implican entrada/salida, multiplicación y división (estas dos
últimas en conjunto con el registro DX)
- Registro BX: Es el registro base, también se emplea
como acumulador, y es el único registro de propósito general que puede ser
un índice para direccionamiento indexado
- Registro CX: Es conocido como el registro contador, se
usa para realizar operaciones de conteo, interacciones con las cadenas y
rotaciones.
- Registro DX: ES el registro de datos. En algunas
operaciones se indica mediante este registro el número de puerto de
entrada/salida, y en las operaciones de multiplicación y división de 16
bits se utiliza junto con el acumulador AX.
Registros
Índice
Los
registros SI y DI están disponibles para direccionamiento indexado y para
operaciones de cadenas de caracteres.
- SI: Registro de índice fuente (no se puede subdividir). Sirve como puntero fuente para las operaciones con cadenas. También sirve para realizar direccionamiento indirecto. El SI está asociado con el segmento DS.
- DI: Registro de índice de destino (no se puede subdividir). Sirve como puntero destino para las operaciones con cadenas. También sirve para realizar direccionamiento indirecto. El DI está asociado con el segmento ES.
Registros
de Segmento
Estos
definen áreas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086.
Estas áreas pueden solaparse total o parcialmente. No es posible acceder a una
posición de memoria no definida por algún segmento: si es preciso, habrá de
moverse alguno.
- Registro CS: El DOS almacena la dirección inicial del
segmento de código de un programa en el registro CS. Esta dirección de
segmento, más un valor de desplazamiento en el registro apuntador de
instrucción (IP), indica la dirección de una instrucción que es buscada
para su ejecución.
- Registro DS: La dirección inicial de un segmento de
datos de programa es almacenada en el registro DS. Esta dirección, más un
valor de desplazamiento en una instrucción, genera una referencia a la
localidad de un byte específico en el segmento de datos.
- Registro SS: El registro SS permite la colocación en
memoria de una pila, para almacenamiento temporal de direcciones y datos.
El DOS almacena la dirección de inicio del segmento de pila de un programa
en el registro SS. Esta dirección de segmento, más un valor de
desplazamiento en el registro del apuntador de la pila (SP), indica la
palabra actual en la pila que está siendo direccionada.
- Registro ES: Para algunas operaciones con cadenas de
caracteres se utiliza el registro extra de segmento para manejar el
direccionamiento de memoria. El ES está asociado con el DI. Un programa que requiere el uso del
ES puede inicializarlo con una dirección de segmento apropiada.
Registros
Apuntadores Los
registros BP y SP están asociados con el registro SS y permiten al sistema
acceder a datos en el segmento de la pila.
- Registro BP: El apuntador base de 16 bits facilita la
referencia de parámetros dentro de la pila.
- Registro SP: El apuntador de pila de 16 bits está
asociado con el segmento SS y proporciona un valor de desplazamiento que
se refiere a la palabra actual que está siendo procesada en la pila. El
sistema maneja de manera automática este registro, aunque el programa
puede hacer ciertas manipulaciones con él.
Registros de Banderas
Es un registro de 16 bits,
de los cuales nueve sirven para indicar el estado actual de la del procesador y el resultado del procesamiento
- Bit 0 - CF (indicador de acarreo): Contiene el acarreo
del bit de mayor orden después de una operación aritmética;
también almacena el contenido del último bit en una operación de
desplazamiento o de rotación.
- Bit 2 - PF (indicador de paridad): Indica si el número de
bits 1, del byte menos significativos de una operación, es par (0=número
de bits 1 es impar; 1=número de bits 1 es par).
- Bit 4 - AF (indicador auxiliar): Contiene el acarreo
del bit 3. Esta bandera se prueba con las instrucciones DAA y DAS para
ajustar el valor de AL después de una suma o resta BCD.
- Bit 6 - ZF (indicador de cero): Indica el resultado de
una operación aritmética o de comparación (0=resultado diferente de cero;
1=resultado igual a cero).
- Bit 7 - SF (indicador de signo): Contiene el signo
resultante de una operación aritmética (0=positivo; 1=negativo).
- Bit 5 - TF (indicador de trampa): Permite la operación
del procesador en modo de depuración (paso a paso)
- Bit 9 - IF (indicador de interrupción): Controla el disparo de
las interrupciones (1=habilita las interrupciones; 0=deshabilita las
interrupciones). La interrupción no enmascarable es la única que
no puede ser bloqueada por esta bandera. El estado de la bandera IF se
controla con las instrucciones STI y CLI.
- Bit 10 - DF (indicador de dirección): Controla la selección
de incremento o decremento de los registros SI y DI en las operaciones con
cadenas de caracteres.
- Bit 11 - OF (indicador de overflow,
desbordamiento): Indica
desbordamiento del bit de mayor orden después de una operación aritmética
de números con signo (1=existe overflow; 0=no existe overflow).
Registró Puntero De
Instrucciones (IP)
El
registro IP, puntero de instrucciones, apunta o señala la próxima instrucción a ejecutarse
en el programa.
No hay comentarios.:
Publicar un comentario