microprocesadores

14
LOS MICROPROCESADORES DE PROPÓSITO GENERAL 8086/8088 CARACTERÍSTICAS FUNDAMÉNTALES DEL 8086/8088 MIPS: 0.33 (5-MHz) ESCALA INTEGRACIÓN: 29.000 TRANSISTORES A diferencia de sus predecesores (8080, 8085) de 8 bits pueden manejar la información de 16 bits. o sea, cuenta con registros y bus de datos de 16 bits. Al respecto existe una diferencia entre el 8088 y el 8086. 8088 Bus de datos interna 16 bits Registro de trabajo 16 bits Bus de datos externo 8 bits 8086 Bus de datos interna 16 bits Registro de trabajo 16 bits Bus de datos externo 16 bits El bus de datos externo del 8088 es de 8 bits, en cambio el bus de datos externo de 8086 es de 16 bits. Poder manipular datos e instrucciones en 16 bits. Permite: Mayor precisión Mayor velocidad de procesamiento Su configuración Hardware incluye instrucciones que no contienen sus antecesores (8080,8085) como: Multiplicación

description

microprocesadores

Transcript of microprocesadores

Los microporcesadore sde propsito general 8086/8088

LOS MICROPROCESADORES DE

PROPSITO GENERAL 8086/8088CARACTERSTICAS FUNDAMNTALES DEL 8086/8088

MIPS: 0.33 (5-MHz)

ESCALA INTEGRACIN: 29.000 TRANSISTORES

A diferencia de sus predecesores (8080, 8085) de 8 bits pueden manejar la informacin de 16 bits. o sea, cuenta con registros y bus de datos de 16 bits.

Al respecto existe una diferencia entre el 8088 y el 8086.

8088

Bus de datos interna 16 bits

Registro de trabajo 16 bits

Bus de datos externo 8 bits

8086

Bus de datos interna 16 bits

Registro de trabajo 16 bits

Bus de datos externo 16 bits

El bus de datos externo del 8088 es de 8 bits, en cambio el bus de datos externo de 8086 es de 16 bits. Poder manipular datos e instrucciones en 16 bits.

Permite:

Mayor precisin

Mayor velocidad de procesamiento

Su configuracin Hardware incluye instrucciones que no contienen sus antecesores (8080,8085) como:

Multiplicacin

Divisin

Su set de instrucciones consta de 92 instrucciones bsicas. Incluye sofisticadas estructura de interrupciones, lo que permite mayor eficiencia de los dispositivos de E/S.

Incluye mecanismos eficientes de deteccin y recuperacin de errores, (p.e en la instruccin DIV, prev una interrupcin para divisin por cero)

Puede acceder a una mayor cantidad de memoria, su bus de direcciones de de 20 bits, con lo que puede direccionar 1 Megabyte de memoria.

Parte de la direccin y todo el bus de datos estn multiplexados en 16 terminales. Los 4 bits de direccin restantes se corresponden con los 4 terminales de direccin adicionales.

El 8088 tiene una estructura de interrupciones muy potente, realiza las operaciones de E/S en un espacio fsicamente separada de la memoria llamado espacio de E/S de hasta 64 kbytes de longitud.

Estos microprocesadores de propsito general pueden trabajar en un a configuracin de mltiples procesadores, tanto en procesamiento paralelo como multiproceso, con otros procesadores especializados como con:

8087 Procesador matemtico

8089 Procesador de E/S

Estos chips no son obligatorios para las funciones usuales, pero esta disponible en caso de que se los quiera utilizar. Para esto, este microprocesador tiene una configuracin tal que puede trabajar en dos modos diferentes:

Modo mnimo: trabajo de manera independiente

Modo mximo: trabaja con otros integrados, 8288 controlador de bus, 8087 coprocesador matemtico y otros.

ESTRUCTURA DE LOS

MICROPROCESADORES DE

PROPSITO GENERAL 8088/8086El 8088 y el 8086 son microprocesadores de 16 bits de propsito general de intel. Estos microprocesadores son una extensin lgica del popular 8080. Internamente son iguales, excepto por el tamao del bus de datos externo, el 8088 esta diseado para trabajar con bus de datos externo.

El 8088 esta diseado para trabajar con bus de 8 bits, siendo de esta manera compatible con la mayora de los buses del mismo tamao. El 8086 por el contrario, se conecta a un bus de 16 bits.

El 6 de 86 indica el bus de 16 bits; el 8 del 88 significa que el bus en este caso es de 8 bits, ambos nmeros se refieren a la anchura del bus de datos. Internamente, ambos poseen el mismo juego de instrucciones y el mismo tamao de datos.

Intel trata esta igualdad interna y desigualdad externa, dividiendo cada procesador 8086 y 8088 en dos sub-procesadores. O sea, cada uno consta de una:

Unidad de Ejecucin (EU Execution Unit) y una

Unidad Interfaz de Bus (BIU Bus Interface Unit) .

Tal como se muestra el siguiente esquema del 8088.

FIGURA 1.- Arquitectura del Microprocesador 8088

Los microprocesadores 8088/8086 constan de una Unidad de ejecucin EU y una Unidad de Interfaz de Bus BIU.

La Unidad de ejecucin: esta encargada de realizar todas las operaciones .

La unidad de interfaz de bus: Esta encargada de acceder a datos e instrucciones del mundo exterior.

Las unidades de ejecucin son idnticas en ambos procesadores, pero las unidades de interfaz son diferentes en varias cuestiones que se vern mas adelante. Esta aproximacin es un ejemplo claro de diseo modular. Esto es, todo el procesador se divide en partes, dos subprocesadores, y cada una esta encargada de ciertas tareas especificas.

Entonces una de las principales caractersticas del 8088/8086 es un proceso interno dual, que permite realizar al mismo tiempo las principales funciones de transferencias de datos y bsqueda de instrucciones.

Una unidad, la BIU esta encargada de localizar las instrucciones y de transferir todos los datos entre los registros y el mundo exterior. La otra unidad la EU esta encargada de decodificar y ejecutar todas las instrucciones.

Adems la BIU que es la encargada de buscar las instrucciones, utiliza el mtodo llamado de estructura tabular o por colas para almacenar nuevas instrucciones hasta que se necesiten. La BIU del 8088 es ms compleja, ya que debe transferir datos entre el bus de datos interno de 16 bits y el bus de datos externo de 8 bits.

COLAS DE INSTRUCCIONES

Una cola es una lnea de espera, el 8088/8086 utilizan tales lineas de espera para almacenar sus instrucciones. Dicho de otra manera, las instrucciones que han de ejecutarse llegan al procesador antes de lo necesario y esperan en una cola de instrucciones.

Este sistema posee la ventaja de que cada instruccin puede extraerse de memoria mientras otras se esta ejecutando, reduciendo en consecuencia el tiempo de proceso. Las colas son normalmente cortas, de 4 a 6 octetos, la del 8086 es de 6 y la del 8088 es de 4 bytes. La BIU, entre otras cosas, extrae las instrucciones de la cola conforme se can nece3sitando, al mismo tiempo que la EU va ejecutando las anteriores instrucciones.

ESPACIO DE E/S

El 8088/8086 tiene otra especie de memoria separada, llamada espacio de E/S, que puede considerarse como una memoria extra para direccionar los lugares donde se encuentren los dispositivos de E/S (direcciones cableadas). El espacio de E/S de 8088/8086 usa un direccionamiento de 16 bits (permite direccionar hasta 64 bits). Tanto la memoria principal como el espacio de E/S usan el mismo juego de direcciones y lneas de datos. Solo el uso de seales de control separa la memoria y el espacio de E/S.

JUEGO DE REGISTROS

El juego de registro del 8088 y del 8086 son exactamente iguales, con 14 registro internos de 16 bits. Cada registro tiene su propia personalidad, cada uno con un objetivo especial. Algunos pertenecen a la EU y otros a la BIU, ver figura 3.

AXAHALRegistros de datos que forman el grupo principal de trabajo

BXBHBL

CXCHCL

DXDHDL

8 bit8 bit

Puntero BaseBPPunteros de 16 bit

Indice FuenteSI

Indice DestinoDI

Stack pointerSP

Segmento de cdigoCSRegistros de Segmentos

Segmento de datosDS

Segmento de pilaSS

Segmento extraES

Puntero de InstruccionesIP(PC)

BanderasFlags

Cuatro son registro de trabajo que se usan temporalmente por los programas para almacenar resultados intermedios y los operandos que se necesitan las operaciones aritmticas y lgicas.

Cuatro registro de segmento que almacenan las direcciones de comienzo de ciertos segmentos de la memoria.

Cinco registro relativos que almacenan las direcciones relativas que se emplean con las direcciones de segmento para indicar donde estn situados los datos en la memoria.

Finalmente hay un registro de estado, formado por nueve bits que se emplean para registrar las informacin del esta do del 8088/8086 y de las operaciones del control.

LOS REGISTROS DE TRABAJO

Cundo l ordenador esta procesando datos, gran parte del tiempo el microprocesador lo ocupa en la transferencia de sus datos con la memoria. Este tiempo de acceso se puede reducir substancialmente en muchas ocasiones, guardando en el interior del 8088 oprerandos mas usados y los resultados obtenidos.

Los cuatro registro de 16 bits llamados normalmente de trabajo, o de datos, se emplean con este propsito.

Estos son: AX, BX, CX, DX. Cada uno de ellos se puede subdividir y direccionarse de forma separada, como si fueran dos medios registros de 8 bits. Los medios registro de mayor orden se conocen como AH, BH, CH, DH y los de orden bajo se conocen como AL, BL, CL, DL. La utilizacin de los registro completos, o medios, pueden ser manipulados libremente como el programador lo desee en funcin de sus necesidades.

Bits 15..015..87..0Descripcin

AXAHALRegistros de datos que forman el grupo principal de trabajo

BXBHBL

CXCHCL

DXDHDL

16 bits8 bits8 bits

Estos se emplean la mayor parte de las veces como reas temporales de trabajo, en particular para realizar operaciones aritmticas. Aunque estos registros se encuentran disponible para realizar cualquier tipo de trabajo, cada uno tiene asignado algunos usos especiales como:

El registro AX (es un acumulador), y es el registro principal para realizar las operaciones aritmticas.

El registro BX (registro base) se utiliza a menudo para apuntar el comienzo de una tabla en memoria. Se puede usar tambin para almacenar la parte relativa de una direccin segmentada.

El registro CX (contador) se utiliza como un contador de repeticin para control de bucles. Por ejemplo, la instruccin LOOP utiliza para almacenar el contador que indica el numero de iteraciones del bucle. Ninguno de los otros registro puede realizar esta funcin.

El registro DX (datos) se utiliza para almacenar datos de 16 bits con propsitos generales.

Aunque los registro de trabajo se utilicen para el almacenamiento temporal de datos y operando, o para las tareas especificas ya mencionadas, la naturaleza de zona de trabajo les posibilita tambin para otros usos. Por ejemplo los cuatro se usan a menudo para albergar las direcciones relativas de datos que pasan como parmetros de un programa a otro.

LOS REGISTROS DE SEGMENTOS

En el mtodo de segmentacin que es la que utiliza el 8088/8086, la direccin completa de una posicin de memoria consiste en la direccin de un segmento y el desplazamiento en el segmento. Los cuatro registro, llamados CS, DS, SS y ES se utilizan para identificar cuatro segmentos especficos de memoria, de los cuatro registro, tres son de propsitos especiales.

Segmento de cdigoCSRegistros de Segmentos

Segmento de datosDS

Segmento de pilaSS

Segmento extraES

El registro CS (Segmento de cdigo) localiza el segmento de cdigo, es decir la direccin a partir de la cual empieza el programa que esta siendo ejecutado.

El registro DS (Segmento de Datos) localiza el segmento de datos, que es la direccin donde empieza el rea de memoria que almacena los datos que se estn utilizando.

El registro SS (Segmento de Pila) localiza el segmento de pila, que es la direccin donde empieza el rea de memoria de trabajo temporal que almacena parmetros y direcciones que utiliza el programa que esta activo.

El registro ES (Segmento extra) localiza el segmento extra, que se utiliza normalmente como suplemento del segmento de datos, con objeto de que se pueda usar mas de 64 k de memoria para almacenamiento.

Tambin se utiliza para transferir datos entre segmentos. Sin embargo este segmento se usa, casi siempre, para calcular la direccin del destino en cualquier operacin de cadenas.

Es comn que los cuatro registro se solapen o sean idnticos; tambin es comn que solo se utilice sola una parte del segmento de 64 k; por ejemplo, un programa puede necesitar tan solo 16k de un segmento de 64k.

LOS REGISTROS RELATIVOS

Se utilizan los cinco registro relativos para localizar un byte en concreto dentro de un segmento especifico de 64k.

El registro llamado puntero de instruccin (IP), indica cual es la direccin donde se encuentra situada la instruccin dentro del segmento de cdigo que se va a ejecutar.

Registros de pila, estn ntimamente ligados a la pila, que no es mas que una zona de la memoria donde el 8088 guarda informacin de direcciones y de datos, que necesita recordad para su utilizacin posterior.

Dos registros que quedan se denomina registros de ndice y se utilizan para sealar la situacin de los operandos que se van a utilizar dentro del segmento de datos.

El puntero de instruccin (IP) tambin llamado contador de programa (PC), proporciona la direccin relativa en el segmento de cdigo donde se encuentra localizada la instruccin del programa que se va a ejecutar. Se utiliza junto con los registro CS. Los programa no tienen acceso directo al registro IP, pero hay un conjunto de instrucciones, tales como JMP y CALL que cambian el contenido a/o desde la pila.

Los registros de pila, denominados puntero de pila (SP) y puntero de base (BP), proporcionan direcciones relativas dentro del segmento de pila. SP proporciona la situacin de la cabecera de la pila y es anlogo al registro IP. El registro BP se utiliza para indicar partiendo de la posicin inicial de la pila , donde se encuentra determinada informacin.

Los registros ndice, denominados el ndice de fuente (SI) y el ndice de destino (DI), se utilizan normalmente con otro registro (AX, BX, CX, DX) o con ciertas instrucciones que proporcionan la direccin relativa del lugar inicial de un campo de datos.

Se utilizan muy a menudo cuando se transfieren grandes listas de datos. Las instrucciones de cadena que utilizan SI y DI transfieren los bytes o las palabras de uno en uno.

Entonces los registro SI y DI incrementan sus valores automticamente, de tal forma que cuando acaba cada transferencia no se tiene que aadir 1 cada vez para mover el siguiente byte de informacin.

REGISTRO DE ESTADO O DE INDICADORES (FLAGS).

Es un registro de 16 bits de los cuales 9 son utilizados para indicar diversas situaciones durante la ejecucin de un programa.

Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condicin, que reflejan los resultados de operaciones del programa; los bits del 8 al 10 son indicadores de control y el resto no se utilizan.

Estos indicadores pueden ser comprobados por las instrucciones de salto condicional, lo que permite variar el flujo secuencial del programa segn el resultado de las operaciones.

PRIVATE15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OF DF IF TF SF ZF AF PF CF

CF (Carry Flag): Indicador de acarreo. Su valor ms habitual es lo que nos llevamos en una suma o resta.

OF (Overflow Flag): Indicador de desbordamiento. Indica que el resultado de una operacin no cabe en el tamao del operando destino.

ZF (Zero Flag): Indicador de resultado 0 o comparacin igual.

SF (Sign Flag): Indicador de resultado o comparacin negativa.

PF (Parity Flag): Indicador de paridad. Se activa tras algunas operaciones aritmtico-lgicas para indicar que el nmero de bits a uno resultante es par.

AF (Auxiliary Flag): Para ajuste en operaciones BCD.

DF (Direction Flag): Indicador de direccin. Manipulando bloques de memoria, indica el sentido de avance (ascendente/descendente).

IF (Interrupt Flag): Indicador de interrupciones: puesto a 1 estn permitidas.

TF (Trap Flag): Indicador de atrape (ejecucin paso a paso).

REGISTROS DEL 386 Y PROCESADORES SUPERIORES.

Los 386 y superiores disponen de muchos ms registros de los que vamos a ver ahora. Sin embargo, bajo el sistema operativo DOS slo se suelen emplear los que veremos, que constituyen bsicamente una extensin a 32 bits de los registros originales del 8086.

Tipo Registros Bits 31-16 Bits 15-0 Descripcin

Uso general EAX EAX31-16 EAX15-0 = AX Acumulador

EBX EBX31-16 EBX15-0 = BX Base

ECX ECX31-16 ECX15-0 = CX Contador

EDX EDX31-16 EDX15-0 = DX Datos

ESI ESI31-16 ESI15-0 = SI Indice Fuente

EDI EDI31-16 EDI15-0 = DI Indice Destino

EBP EBP31-16 EBP15-0 = BP Puntero Base

ESP ESP31-16 ESP15-0 = SP Puntero de Pila

De segmento CS No aplicable: estos registros son de 16 bits CS Segmento de cdigo

SS SS Segmento de pila

DS DS Segmento de datos

ES DS Segmentos de datos extra

FS DS

GS DS

Otros EIP EIP31-16 EIP15-0 = IP Puntero de instrucciones

EFlags EFlags31-16 EFlags15-0 = Flags Indicadores