Temas arquitectura interna 8086 8088 de 13-08-10

23
Arquitectura del 8086/8088 En junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits: el 8086. En junio de 1979 apareció el 8088 (internamente igual que el 8086 pero con bus de datos de 8 bits) y en 1980 los coprocesadores 8087 (matemático) y 8089 (de entrada y salida). MicroprocesadoresI Arquitectura del Microproceasador 8086

Transcript of Temas arquitectura interna 8086 8088 de 13-08-10

Arquitectura del

8086/8088En junio de 1978 Intel lanzó al mercado el primer

microprocesador de 16 bits: el 8086. En junio de

1979 apareció el 8088 (internamente igual que el

8086 pero con bus de datos de 8 bits) y en 1980 los

coprocesadores 8087 (matemático) y 8089 (de

entrada y salida).

MicroprocesadoresI

Arquitectura del Microproceasador 8086

Arquitectura del 8086/8088

Arquitectura de computadoras IIEl 8086

Estos microprocesadores

tiene 2 procesadores

conectados

internamente, estos

procesadores son:

EU

Unidad de ejecución

(Execution Unit).

BIU

Unidad de interfaz con el

Bus (Bus Interface Unit).

Arquitectura del Microproceasador 8086

La unidad de ejecución (EU)

La EU es la encargada de ejecutar las

instrucciones.

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

La Unidad de Interfase con el Bus (BIU)

Es la responsables de la comunicación externa del procesador. Se encarga de proporcionar las direcciones de la memoria y transmitir y recibir datos e instrucciones.

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

Registros del 8086

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

Registros de uso general

AX, BX, CX, DX: pueden utilizarse bien como registros de 16 bits o como dos registros separados de 8 bits (byte superior e inferior) cambiando la X

por H o L según queramos referirnos a la parte alta o baja respectivamente. Por ejemplo,

AX se descompone en AH (parte alta) y AL (parte baja). Evidentemente, ¡cualquier cambio sobre AH o AL altera AX

AX = Acumulador.

Es el registro principal, es utilizado en las instrucciones de multiplicación y división y en algunas instrucciones aritméticas especializadas, así como en ciertas operaciones de carácter específico como entrada, salida y traducción.

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

Registros de propósito general

Arquitectura de computadoras IIEl 8086

BX = Base.Se usa como registro base para referenciar

direcciones de memoria con direccionamiento indirecto.

CX = Contador.

Se utiliza comúnmente como contador en bucles y operaciones repetitivas de manejo de cadenas.

DX = Datos.Usado en conjunción con AX en las operaciones

de multiplicación y división. En las de entrada y salida se emplea para especificar la dirección del puerto E/S.

Arquitectura del Microproceasador 8086

Registros de segmento:

Definen áreas de 64 KB dentro del espacio de direcciones de 1 MB del 8086. Estas áreas pueden traslaparse 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.

CS = Registro de segmento de código (code segment).Contiene la dirección del segmento con las instrucciones del

programa.

DS = Registro de segmento de datos (data segment).Segmento del área de datos del programa.

SS = Registro de segmento de pila (stack segment). Segmento de pila.

ES = Registro de segmento extra (extra segment).Segmento de ampliación para zona de datos.

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

Registros punteros:Direccion de memoria=RS*16+desplazamiento(punteros)

Puntero de instrucciones o contador de

programa

Arquitectura de computadoras IIEl 8086

IP = Puntero de instrucción (instruction pointer). Marca el desplazamiento de la instrucción en curso dentro del segmento de

código. Es automáticamente modificado con la lectura de una instrucción.

Direccion efectiva=CS*16+IP

Arquitectura del Microproceasador 8086

Registros punteros de pila

SP = Puntero de pila (stack pointer).Apunta al inicio de la pila SS.

BP = Puntero base (base pointer).Es un puntero de base, que apunta a una zona dentro

de la pila SS.

Direccion efectiva=SS*16+BP

Direccion efectiva=SS*16+SP

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

Registros punteros índices DI y SI:

Arquitectura de computadoras IIEl 8086

SI = Índice fuente (source index).Apuntan al segmento de datos.

DI = Índice destino (destination index).Apuntan al segmento de datos y/o segmentoextra

Dirección efectiva=DS*16+SI

Dirección efectiva=DS*16+DI

Arquitectura del Microproceasador 8086

Registro de estado o de indicadores (flags)

Arquitectura de computadoras IIEl 8086

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

Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condición, que reflejan los resultados de operaciones del programa.

Arquitectura del Microproceasador 8086

Bit

Señala desbordamiento aritméticoDesbordamiento (Overflow Flag")OF

Indica la dirección de las operaciones.Dirección ("Direction Flag")DF

Este bit controla el estado del sistema de

interrupciones enmascarables . Cuando está

activo (1) permite las interrupciones; el

estado inactivo (0) las deshabilita.

Interrupción ("Interrupt Flag")IF

Si está activo, el procesador genera

automáticamente una interrupción después

de la ejecución de cada instrucción, lo que

permite controlar paso a paso la ejecución del

programa. Este bit debe estar normalmente

inactivo (a 0).

Detención ("Trap Flag")TF

Si está activo indica que el resultado de

operación o de comparación son negativos.Signo ("Sign Flag")SF

Está activo si el resultado de operación es

cero o resultado de comparación igual.Cero ("Zero Flag")ZF

Indicador de ajuste en operaciones

aritméticas con cantidades BCD Acarreo auxiliarAF

Si está activo Indica un número par de bits

activos (bits cuyo contenido es 1). Esta

información es útil cuando el procesador

controla transmisiones de datos.

Paridad ("Parity Flag")PF

Indicador de arrastre del bit de mayor

orden, que puede ocurrir en las operaciones

aritméticas suma y resta.Acarreo ("Carry Flag")CF

UsoIndicador de:

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

SEGMENTACIÓN

Arquitectura de computadoras IIEl 8086

Dirección lógica

Registro de segmentoDesplaz

amiento

Dirección de segmento

Dirección física

CPU

SEGMENTO

Memoria

0

FFFFF

Arquitectura del Microproceasador 8086

Segmento de Memoria

Un segmento es un área continua de memoria que puede tener hasta 64K-bytes, que debe comenzar en una localidad de memoria cuya dirección sea límite de 16 bytes (cantidad denominada párrafo) y que puede traslaparse con otros segmentos.

SEGMENTO

Memoria

0

FFFFF

Arquitectura de computadoras IIEl 8086

Arquitectura del Microproceasador 8086

SEGMENTACIÓN

Arquitectura de computadoras IIEl 8086

02000

SEGMENTO DE

CÓDIGO

RELOCALIZADO

SEGMENTO DE

CÓDIGO EN CURSO

PROGRAMA

MEMORIA

Relocalización de un programa usando el registro CS

PROGRAMA

600

1A300

600

nuevo (CS)=1A30

Arquitectura del Microproceasador 8086

Formación de una Dirección Física

Arquitectura de computadoras IIEl 8086

0000

4 bits

Dirección de

segmento

Dirección

efectiva,

lógica u

offset

Dirección física

EL REGISTRO DE SEGMENTO SE DESPLAZA 4 BITS HACIA LA IZQUIERDA (MULTIPLICACIÓN x16)

20 BITS

Siempre que una memoria es accesada , se genera una dirección física a partir de la dirección lógica.

Arquitectura del Microproceasador 8086

Terminales (pinout) del 8088

Este microprocesador está encapsulado en el formato DIP (Dual Inline Package) de 40 patas (veinte de cada lado).

FUNCION DE LOS PINES DEL

8086/8088 GND (Masa)

A14 (Bus de direcciones)

A13 (Bus de direcciones)

A12 (Bus de direcciones)

A11 (Bus de direcciones)

A10 (Bus de direcciones)

A9 (Bus de direcciones)

A8 (Bus de direcciones)

AD7 (Bus de direcciones y datos)

AD6 (Bus de direcciones y datos)

AD5 (Bus de direcciones y datos)

AD4 (Bus de direcciones y datos)

AD3 (Bus de direcciones y datos)

AD2 (Bus de direcciones y datos)

AD1 (Bus de direcciones y datos)

AD0 (Bus de direcciones y datos)

NMI (Entrada de interrupción no enmascarable)

INTR (Entrada de interrupción enmascarable)

CLK (Entrada de reloj generada por el 8284)

GND (Masa)

RESET (Para inicializar el 8088)

READY (Para sincronizar periféricos y memorias lentas)

Test Este pin de entrada se prueba por la instrucción espera de prueba.

FUNCION DE LOS PINES DEL

8086/8088

/INTA (El 8088 indica que reconoció la interrupción)

ALE (Indica que salen direcciones por AD, en caso contrario, es el bus de datos)

/DEN (Data enable: habilita los transceptores 8286 y 8287 (se conecta al pin de "output enable"), esto sirve para que no se mezclen los datos y las direcciones).

DT/R (Data transmit/receive: se conecta al pin de dirección de los chips recién indicados).

IO/M (Si vale 1: operaciones con ports, si vale 0: operaciones con la memoria)

/WR (Cuando vale cero hay una escritura)

HLDA (Hold Acknowledge: el 8088 reconoce el HOLD)

HOLD (Indica que otro integrado quiere adueñarse del control de los buses, generalmente se usa para DMA o acceso directo a memoria).

/RD (Cuando vale cero hay una lectura)

MN/MX (Cuando esta entrada está en estado alto, el 8088 está en modo mínimo, en caso contrario está en modo máximo)

/SSO (Junto con IO/M y DT/R esta salida sirve para determinar estados del 8088)

A19/S6 (Bus de direcciones/bit de estado)

A18/S5 (Bus de direcciones/bit de estado)

A17/S4 (Bus de direcciones/bit de estado)

A16/S3 (Bus de direcciones/bit de estado)

A15 (Bus de direcciones)

Vcc (+5V)

Lectura en el 8086

Ciclo de escritura simplificado

Escritura en el 8086

Ciclo de escritura simplificado