miércoles, 20 de noviembre de 2013

ARQUITECTURA DEL PROCESADOR 8086


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.: