20
Arquitectura del 8086 Organización del Computador Organizacion del Computador 2012 Docente Laura Almada

Arquitectura Del 8086

Embed Size (px)

DESCRIPTION

assembler

Citation preview

Page 1: Arquitectura Del 8086

Arquitectura del 8086

Organización del Computador

Organizacion del Computador 2012 Docente Laura Almada

Page 2: Arquitectura Del 8086

Características generales

Organizacion del Computador 2012 Docente Laura Almada

Page 3: Arquitectura Del 8086

Hoja de datos del 8088

Organizacion del Computador 2012 Docente Laura Almada

Page 4: Arquitectura Del 8086

Los procesadores previos al 8086, estaban

limitados en su desempeño por la

necesidad de realizar los dos pasos

principales de ejecución del procesador:

Fetch/Execute, en forma secuencial. Es

decir, no se puede ejecutar una instrucción

hasta que se traiga de memoria (Fetch); y

no podían traerse instrucciones de memoria

mientras ejecutaba una instrucción, pues el

procesador estaba ocupado.

Organizacion del Computador 2012 Docente Laura Almada

Page 5: Arquitectura Del 8086

Pipeline del Fetch/Execute

• Intel desarrolló la arquitectura en pipeline del Fetch/Execute, en la cual se divide la tarea en dos secciones:

una encargada del Fetch (BIU)

otra del Execute (EU).

– De esta manera, existen circuitos separados para cada función, los cuales trabajan en paralelo.

– El proceso aún es secuencial,pero solo se desperdicia tiempo en el Fetch.

– A partir de ahí, Fetch va adelante del Execute, y trae instrucciones al procesador mientras este ejecuta las anteriores.

Organizacion del Computador 2012 Docente Laura Almada

Page 6: Arquitectura Del 8086

Diagrama en bloques del micro 8086/8088 Organizacion del Computador 2012

Docente Laura Almada

Page 7: Arquitectura Del 8086

La unidad de ejecución (EU)

Realiza las operaciones aritmético/ lógicas,

además de proporcionar las direcciones lógicas a

la unidad de interfaz con el Bus

Tiene :

• una unidad aritmética lógica (ALU) de 16 bits

• un registro de indicadores o banderas (Flags)

• un conjunto de registros de propósito general.

Organizacion del Computador 2012 Docente Laura Almada

Page 8: Arquitectura Del 8086

ALU

• La unidad aritmético-lógica se encarga de las operaciones arit/log con los datos que recibe siguiendo ordenes de la Unidad de Control.

Realiza

• Operaciones +,-,*,/

• Operaciones lógicas and, or, xor ,not

• Operaciones de rotación y desplazamiento

• Operaciones de transformación de operando como extensión de signo

Organizacion del Computador 2012 Docente Laura Almada

Page 9: Arquitectura Del 8086

Registro de Flags El registro de Flags contiene 6 banderas de estado (que la EU

manipula para indicar el estado del resultado de una operación

lógica o aritmética) y 3 banderas de control que se pueden

manipular por los programas para alterar las operaciones del

procesador .

–Bit 0-Carry Flag :es la bandera de carry.se pone en 1 cuando

hay acarreo en una op.aritmética.

–Bit1 :no usado

–Bit2:Parity Flag : en 1 cuando hay un par de bits activos

Organizacion del Computador 2012 Docente Laura Almada

Page 10: Arquitectura Del 8086

– Bit 3:no usado

– Bit 4:AuxiliarFlag:se pone en 1 cuando se hacen ajustes tras una operación BCD

– Bit5 :no usado

– Bit6-ZeroFlag:indica si el resultado es cero o comparación con operadores iguales.

– Bit7-Sign Flag: indica si el resultado de una operación es negativo o comparación menor.

– Bit8-Trap Flag: se usa en depuración de código.

– Bit9-Interrup Flag: en 1 se permite la generación de interrupciones de hardware, como por ejemplo la del teclado.

Organizacion del Computador 2012 Docente Laura Almada

Page 11: Arquitectura Del 8086

–Bit 10-Direction Flag: indica a la CPU hacia dónde se desplazan los punteros relativos en

operaciones de loop decadenas de datos. –Bit11-Overflow Flag:indicaca si existe desbirde

aritmético –Bit 12 al 15 :no usados

Organizacion del Computador 2012 Docente Laura Almada

Page 12: Arquitectura Del 8086

Registros de uso General Son de 16 bits permiten la realización de operaciones de tipo

byte, están divididos en sub-registros que se pueden usar independientemente.

• Ax(registro acumulador):usado en operaciones aritméticas como primer operando y también como registro de propósito gral a disposición del programador.

• Bx(registro base):usado para indicar posiciones de memoria u offset

• Cx(registro contador):se usa como contador en operaciones repetitivas o bucles.

• Dx(registro dato):se usa como auxiliar en operaciones matemáticas y como contenedor a la hora de usar instrucciones de comunicación de puertos.

Organizacion del Computador 2012 Docente Laura Almada

Page 13: Arquitectura Del 8086

Punteros índice

• SI = Índice fuente (source index).Utilizado como registro de índice en ciertos modos de direccionamiento indirecto, también se emplea para guardar un valor de desplazamiento en operaciones de cadenas.

• DI = Índice destino (destination index). Se usa en determinados modos de direccionamiento indirecto y para almacenar un desplazamiento en operaciones con cadenas.

Organizacion del Computador 2012 Docente Laura Almada

Page 14: Arquitectura Del 8086

La Unidad de Interfase con el Bus (BIU)

• Contiene registros de segmento para trabajar en y con la memoria

• Tiene una cola de pre-búsqueda • Tiene el generador de direcciones físicas

que traduce las direcciones lógicas a direcciones físicas de la memoria con ayuda de los registros de segmento DS, SS, ES, CS e IP.

• Contiene también al controlador de BUS

Organizacion del Computador 2012 Docente Laura Almada

Page 15: Arquitectura Del 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.

Los programas de más de 64 Kb requieren cambiar CS periódicamente.

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

Es extraordinariamente útil actuando en conjunción con DS: con ambos se puede definir dos zonas de 64 Kb, tan alejadas como se desee en el espacio de direcciones, entre las que se pueden intercambiar datos

Organizacion del Computador 2012 Docente Laura Almada

Page 16: Arquitectura Del 8086

Punteros de pila

• SP = Puntero de pila (stack pointer).Apunta al inicio de la pila. Utilizado en las instrucciones de manejo de la pila.

• BP = Puntero base (base pointer).Es un puntero de base, que apunta a una zona dentro de la pila dedicada al almacenamiento de datos (variables locales y parámetros de las funciones en los programas compilados).

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

Organizacion del Computador 2012 Docente Laura Almada

Page 17: Arquitectura Del 8086

Cola de instrucciones

• El BIU trabaja en paralelo con el EU y requieren un mecanismo para comunicarse.

• La EU obtiene instrucciones que la BIU almacena en la cola de prebúsqueda en el mismo orden en que fueron colocadas allí,y puede ejecutarlas secuencialmente sin importar en qué paso de la obtención de la instrucción esté la BIU. Cuando el bus está desocupado, la cola se carga con las próximas instrucciones.

Organizacion del Computador 2012 Docente Laura Almada

Page 18: Arquitectura Del 8086

Unidad de control

La unidad de control controla el funcionamiento de la CPU: controla las transferencias de datos desde hacia la CPU y controla la ALU. Sus funciones son: • Generar la secuencia de estados del procesador. • Decodificar las instrucciones, determinando así los pasos para

su ejecución.

• Para cada instrucción hay un único código que ejecutará esa instrucción.

• La unidad de control acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute.

Organizacion del Computador 2012

Docente Laura Almada

Page 19: Arquitectura Del 8086

Generador de direcciones físicas

• Como las direcciones son de 20 bits, y los registros que nos permiten accederas son de 16, se requiere de 2 registros para que en combinación formen la dirección.

• Esta combinación está basada en la arquitectura segmentada que veremos más adelante. La función del generador de direcciones físicas consiste en realizar esa combinación, para lo cual contiene la circuitería necesaria para calcular la fórmula:

• Dirección Física = Segmento * 0010h + Desplazamiento

Organizacion del Computador 2012 Docente Laura Almada

Page 20: Arquitectura Del 8086

• Para convertir una dirección lógica en una dirección física el BIU corre el valor del registro de segmento 4 posiciones a la izquierda (que es equivalente a multiplicar por 16h) y suma el valor del offset para obtener un valor de 20 bits necesarios.

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 Organizacion del Computador 2012

Docente Laura Almada