microprocesador 8086 - dsi.fceia.unr.edu.ar · pdf file06/10/2014 microprocesador 8086 –...
TRANSCRIPT
Microprocesador 8086
Digital II
Departamento de Sistemas e Informática
06/10/2014 Microprocesador 8086 – Digital II 2
Presentación de Docentes y Material
è Docentes:è Ing. Silvia Domiziè Ing. Diego Alegrechi
è Material de Cátedra – (disponible en www.dsi.fceia.unr.edu.ar)
1. Intel 8086 - Datasheet2. Los microprocesadores Intel - B. Brey – 3º Edición – Prentice Hall
(Cap 7).
06/10/2014 Microprocesador 8086 – Digital II 3
Microprocesadores y Microcontroladores
➢ Dispositivo electrónico semiconductor que incluye la ALU, conjunto de registros y circuitos de control en un mismo chip.
➢ Incluye un set de instrucciones para manipular los datos y comunicarse con los periféricos.
➢ No incluye memorias internas. Posee buses de datos y direcciones que posibilitan la conexión con memorias de programas y datos externas al chip del microprocesador.
MicroprocesadorMicroprocesador
➢ Microprocesador más memorias y periféricos específicos integrados en un mismo chip (temporizadores, conversores A/D, D/A, puertos UART, CAN, SPI, I2C, USB, ETHERNET, etc).
➢ Sistemas totalmente dedicados a resolver problemas específicos (sistemas embebidos).
MicrocontroladorMicrocontrolador
06/10/2014 Microprocesador 8086 – Digital II 4
Microprocesador 8086 - Características
Principales CaracterísticasPrincipales Características➢ Procesador de 16 bits (puede operar en 8 ó 16 bits pero los buses internos son todos de 16 bits).
➢ Hasta 1 Mbyte de memoria direccionable (mapeable) – Bus de 20 lineas de direcciones.
➢ Espacio de memoria para periféricos de entrada salida de 64 Kbytes.
➢ Los buses de datos y direcciones están multiplexados temporalmente.
➢ La memoria o las memorias donde se aloja el código del programa y los datos es externa al microprocesador. El 8086 NO posee ningún tipo de memoria integrada para código o datos.
➢ Velocidad de operación (5MHz, 8MHz, 10MHz)
➢ Encapsulado de 40 pines.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 5
Arquitectura del 8086Arquitectura del 8086
Estos microprocesadores tienen dos unidades inteligentes conectadas internamente:
EU Unidad de ejecución (Execution Unit).
BIU Unidad de interfaz con el Bus (Bus Interface Unit).
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 6
La unidad de ejecución (EU)La unidad de ejecución (EU)
Se encarga de decodificar las instrucciones cargadas (Fetched) por la BIU, generar las señales de control y ejecutar las instrucciones
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 7
La unidad de ejecución (EU)La unidad de ejecución (EU)
Proporciona las direcciones lógicas al BIU.Una dirección lógica está formada de dos direcciones, la primera indica el segmento en el cual se está trabajando y la otra indica el offset, o desplazamiento, de este segmento; esto es segment:offset.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 8
La unidad de ejecución (EU)La unidad de ejecución (EU)
Posee una unidad aritmética lógica (ALU) de 16 bits, un registro de banderas y un conjunto de registros de propósito general. El registro de banderas contiene 6 banderas de estado y 3 banderas de control que se pueden manipular por los programas para alterar las operaciones del procesador .
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 9
Es la responsables de la comunicación externa del procesador. Esta unidad de proceso se encarga de traducir las direcciones lógicas a direcciones físicas de la memoria con ayuda de los registros de segmento DS, SS, ES, CS e IP.
La Unidad de Interfase con el Bus (BIU)La Unidad de Interfase con el Bus (BIU)
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 10
Se encarga de todas las operaciones de Bus (comunicación con el exterior), que incluyen los ciclos de lectura y escritura, así como también la carga de las instrucciones para la EU (Instruction Fetching).Las instrucciones son cargadas en una cola de instrucciones.
La Unidad de Interfase con el Bus (BIU)La Unidad de Interfase con el Bus (BIU)
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 11
La EU puede trabajar a una máxima eficiencia si se le provee constantemente de instrucciones y datos para procesar.Esa es la principal función de la cola de pre-carga de instrucciones de la BIU
La Unidad de Interfase con el Bus (BIU)La Unidad de Interfase con el Bus (BIU)
Concepto de PipelineConcepto de Pipeline
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 12
MODELO DE PROGRAMACIÓN MODELO DE PROGRAMACIÓN DEL 8086.DEL 8086.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 13
El modelo de programación del 8086
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 14
Registros de datos o de propósito generalRegistros de datos o de propósito general
AX, BX, CX, DX: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.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 15
Registros de datos o de propósito generalRegistros de datos o de propósito general 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. Obsérvese que el 8086 es suficientemente potente para realizar las operaciones lógicas, la suma y la resta sobre cualquier registro de datos, no necesariamente el acumulador.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 16
Registros de datos o de propósito generalRegistros de datos o de propósito general BX = Base.
Se usa como registro base para referenciar direcciones de memoria con direccionamiento indirecto, manteniendo la dirección de la base o comienzo de tablas o matrices. De esta manera, no es preciso indicar una posición de memoria fija, sino la número BX (así, haciendo avanzar de unidad en unidad a BX, por ejemplo, se puede ir accediendo a un gran bloque de memoria en un bucle).
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 17
Registros de datos o de propósito generalRegistros de datos o de propósito general
CX = Contador.
Se utiliza comúnmente como contador en bucles y operaciones repetitivas de manejo de cadenas. En las instrucciones de desplazamiento y rotación se utiliza como contador de 8 bits.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 18
Registros de datos o de propósito generalRegistros de datos o de propósito general
DX = Datos.
Usado en conjunción con AX en las operaciones de multiplicación y división que involucran o generan datos de 32 bits. En las de entrada y salida se emplea para especificar la dirección del puerto E/S.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 19
Registros de segmentoRegistros de segmento
CS, DS, SS, ES:CS, DS, SS, ES: 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.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 20
CS = Registro de segmento de código (code segment).
Contiene la dirección del segmento que apunta a un área de memoria donde se encuentra el código, instrucciones del programa. Los programas de más de 64 Kb requieren cambiar CS periódicamente.
Registros de segmentoRegistros de segmento
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 21
DS = Registro de segmento de datos (data segment).
Contiene la dirección del segmento que apunta a un área de memoria donde se encuentran datos del programa. (Variables, Cttes, etc)
Registros de segmentoRegistros de segmento
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 22
SS = Registro de segmento de pila (stack segment).
Contiene la dirección del segmento que apunta a un área de memoria donde se guardarán datos temporales del programa (Ej. direcciones de retorno de subrutinas, etc)
Registros de segmentoRegistros de segmento
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 23
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
Registros de segmentoRegistros de segmento
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 24
SP = Puntero de pila (stack pointer).
Apunta al inicio de la pila. Utilizado en las instrucciones de manejo de la pila.
Registros punteros de pilaRegistros punteros de pila
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 25
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).
Registros punteros de pilaRegistros punteros de pila
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 26
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.
Puntero de instrucciones o contador de programaPuntero de instrucciones o contador de programa
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 27
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.
Registros índicesRegistros índices::
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 28
DI = Índice destino (destination index).
Se usa en determinados modos de direccionamiento indirecto y para almacenar un desplazamiento en operaciones con cadenas.
Registros índicesRegistros índices::
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 29
Registro de estadoRegistro de estado o de indicadores ( o de indicadores (flagsflags))• Es un registro de 16 bits de los cuales 9 son utilizados para Es un registro de 16 bits de los cuales 9 son utilizados para
indicar diversas situaciones durante la ejecución de un programa.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 Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condición, que
reflejan los resultados de operaciones del programareflejan los resultados de operaciones del programa• los bits del 8 al 10 son indicadores de control y el resto no se los bits del 8 al 10 son indicadores de control y el resto no se
utilizan. utilizan. • Estos indicadores pueden ser comprobados por las instrucciones Estos indicadores pueden ser comprobados por las instrucciones
de salto condicional, lo que permite variar el flujo secuencial del de salto condicional, lo que permite variar el flujo secuencial del programa según el resultado de las operaciones.programa según el resultado de las operaciones.
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 30
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:
Microprocesador 8086 - Arquitectura
06/10/2014 Microprocesador 8086 – Digital II 31
NV ("No overflow") OV ("Overflow") DesbordamientoOF
UP incremento DN ("Down") decremento DirecciónDF
DI ("Disabled Interrupt") desactivada EI ("Enabled Interrupt") activa InterrupciónIF
PL ("Plus") positivo NG ("Negative") negativo SignoSF
NZ ("No Zero") ZR ("Zero") CeroZF
NA ("No Auxiliar") AC ("Auxiliar Carry") Acarreo auxiliarAF
PO ("Parity Odd") paridad impar PE ("Parity Even") paridad par ParidadPF
NC ("No Carry") CY ("Carry yes") AcarreoCF
Indicativo si bit 0Indicativo si bit 1Indicador de:Bit
06/10/2014 Microprocesador 8086 – Digital II 32
Segmentación de la Memoria en el Segmentación de la Memoria en el 80868086
Microprocesador 8086
33
Microprocesador 8086 – Espacio Mapeable
Ao
A20
Bus de Direcciones 220 = 1MByteEspacio Mapeable
Mapade
Memoria
00000h
FFFFFh
Microprocesador 8086 – Digital II06/10/2014
06/10/2014 Microprocesador 8086 – Digital II 34
Un segmento es un área continua de memoria que puede tener hasta 64Kbytes, que debe comenzar en una localidad de memoria cuya dirección sea límite de 16 bytes (cantidad denominada párrafo) y que puede solaparse con otros segmentos.Segmento Físico de
Código(64 Kbytes)
CS:0000h
CS:FFFFh
Espacio de Memoria
00000h
FFFFFh
Desplazamiento(Offset)
CS:IP
Inicio del Segmento
Fin del Segmento
Microprocesador 8086 - Segmentación
Microprocesador 8086 – Digital II 35
Cada localidad de memoria tiene dos tipos de direcciones :Cada localidad de memoria tiene dos tipos de direcciones :
Dirección Física y Dirección Lógica o efectivaDirección Física y Dirección Lógica o efectiva
Una dirección Física es el valor único de 20 bits que identifica la localización Una dirección Física es el valor único de 20 bits que identifica la localización de cada byte en el espacio de memoria de 1 Mbyte.de cada byte en el espacio de memoria de 1 Mbyte. Los programas tratan con dirección Lógicas mas que con la dirección Física.Los programas tratan con dirección Lógicas mas que con la dirección Física.
Para cualquier localidad de memoria, el valor base del segmento ubica el Para cualquier localidad de memoria, el valor base del segmento ubica el primer byte del contenido del segmento y el valor del offset es la distancia, en primer byte del contenido del segmento y el valor del offset es la distancia, en bytes , de la localización destino del principio del segmento.bytes , de la localización destino del principio del segmento.
Los valores de la base del Segmento y del offset son cantidades no signadas Los valores de la base del Segmento y del offset son cantidades no signadas de 16 bits; la dirección del byte más bajo del segmento tiene un offset 0. de 16 bits; la dirección del byte más bajo del segmento tiene un offset 0.
Dirección Física y Dirección LógicaDirección Física y Dirección Lógica
Microprocesador 8086 - Segmentación
06/10/2014
Microprocesador 8086 – Digital II 36
Formación de una Dirección FísicaFormación de una Dirección Física
00000000
4 bitsDirecció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 Siempre que una memoria es accesada , se genera una dirección física a partir de la dirección lógica. física a partir de la dirección lógica.
Microprocesador 8086 - Segmentación
06/10/2014
37
Segmentos Físicos→ Empiezan en direcciones físicas divisibles por 16.→ Tienen un tamaño fijo de 64 Kbytes.→ Utilizando direcciones lógicas, se puede acceder a
todos los registros de un segmento físico sólo cambiando el desplazamiento.
→ CS, DS, SS y ES son los registros del 8086 que contienen las direcciones de inicio de los respectivos segmentos físicos.
Segmentos Lógicos→ Es una sección de memoria de tamaño VARIABLE y en
general puede contener código, datos o pila.→ Para poder definir estos códigos son necesarios el uso de
las directivas del ensamblador (emu8086)
Segmento Físico de Código
(64 Kbytes)
CS:0000h
CS:FFFFh
Segmento Físico de Datos
(64 Kbytes)
DS:0000h
DS:FFFFh
Segmento Físico de Pila(64 Kbytes)
SS:0000h
SS:FFFFh
Espacio de Memoria
00000h
FFFFFh
Segmento Lógico de Pila
Segmento Lógico de Código
Segmento Lógico de Datos
Microprocesador 8086 - Segmentación
Microprocesador 8086 – Digital II06/10/2014
06/10/2014 Microprocesador 8086 – Digital II 38
El segmento de códigoEl segmento de código (tiene como base el (tiene como base el contenido del registro CS).contenido del registro CS).
En este segmento se encuentran las instrucciones que forman el programa. Para acceder a los datos contenidos en él, se usa el registro IP como desplazamiento.
El segmento de datosEl segmento de datos (que tiene como base el (que tiene como base el registro DS).registro DS).
Contiene los datos que utiliza el programa (variables, etc.) Para acceder a los datos contenidos en él, se suele utilizar los registros SI y DI como desplazamiento.
Microprocesador 8086 - Segmentación
06/10/2014 Microprocesador 8086 – Digital II 39
CS
DS
SS
ES
STACK
SEGMENTO EXTRA DE DATOS
SEGMENTO DE DATOS
SEGMENTO DE CÓDIGO
CS
OTRO SEGMENTO
SEGMENTO DE CÓDIGO
PROGRAMA
MEMORIA MEMORIA
SEGMENTOS SOLAPADOS
Microprocesador 8086 - Segmentación
06/10/2014 Microprocesador 8086 – Digital II 40
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
1A300600
nuevo (CS)=1A30
Microprocesador 8086 - Segmentación
Microprocesador 8086
06/10/2014 Microprocesador 8086 – Digital II 41
Instrucción MOV y modos de Instrucción MOV y modos de direccionamientodireccionamiento
42
Microprocesador 8086 – Instrucción MOV
06/10/2014 Microprocesador 8086 – Digital II
43
Microprocesador 8086 - Direccionamiento
Por registro Inmediato Directo Indirecto – Por Registro Indirecto – Relativo a la Base Indirecto – Relativo a las base más índice Indirecto – Relativo a la base más índice con desplazamiento
Tipos de Direccionamientos permitidos por el 8086
Microprocesador 8086 – Digital II06/10/2014
44
MOV BX,CX Transfiere el contenido del registro CX al registro BX
Direccionamientos por Registro e Inmediato
MOV AX,0x40h Transfiere 0x40h al registro AX
En este tipo de operaciones no intervienen operandos que hagan referencia a una posición de memoria.
Direccionamiento Directo
En los restantes modos de direccionamiento SIEMPRE uno (y sólo uno) de los dos operandos hace referncia a una posición de memoria.
DATO dw 1000h : :
MOV BX,DATO
Se transfiere la variable DATO al registro BX. El ensamblador interpreta a la variable DATO como un offset respecto del segmento de datos.
MOV BL,[1000h]
Se transfiere un Byte de la posición DS:[1000h] a la parte baja del registro BX
Microprocesador 8086 - Direccionamiento
Microprocesador 8086 – Digital II06/10/2014
45
MOV BX,1234hMOV AX,[BX]
Transfiere 16 bits de la posición DS:[1234h] al registro AX
Direccionamiento Indirecto – Relativo a la Base
Direccionamiento Indirecto – Por Registro
TBL_datos db 1,2,3
MOV DI,1MOV BL,TBL_dato[DI]
Transfiere el segundo Byte de la tabla “TBL_datos” a la parte baja del registro BX. La BIU calcula la dirección como: Dir = DS:(offset(TBL_datos) + DI)
Direccionamiento Indirecto – Relativo a la Base + IndiceTBL_datos db 1,2,3
MOV AL,0xFFhMOV BX,OFFSET TBL_datosMOV DI,2MOV [BX][DI],AL
Transfiere el valor guardado en AL al tercer Byte de la tabla “TBL_datos”. La BIU calcula la dirección como: BX = offset(TBL_datos) Dir = DS:( BX + DI)
Microprocesador 8086 - Direccionamiento
Microprocesador 8086 – Digital II06/10/2014
46
Direccionamiento Indirecto – Relativo a la Base + Indice con desplazamientoTBL_datos db 1,2,3
MOV AL,0xFFhMOV BX,OFFSET TBL_datosMOV DI,1MOV 1h[BX][DI],AL
Transfiere el valor guardado en AL al tercer Byte de la tabla “TBL_datos”. La BIU calcula la dirección como: BX = offset(TBL_datos) Dir = DS:( BX + DI +1h)
Registro Base Registro Índice Combinaciones
Desplazamiento
[BX] [SI] [BX][SI][BP][SI]
[BP] [DI] [BP][DI][BX][DI]
Resumen→ Los únicos registros que pueden ser utilizados para el direccionamiento son BX, BP, SI y
DI. Las combinaciones posibles para su uso se detallan a continuación.
Microprocesador 8086 - Direccionamiento
Microprocesador 8086 – Digital II06/10/2014
Microprocesador 8086
06/10/2014 Microprocesador 8086 – Digital II 47
Espacio de Entrada/SalidaEspacio de Entrada/Salida
48
Microprocesador 8086 – Espacio de I/O
216 = 64KByteEspacio Mapeable
MapadeI/O
0000h
FFFFh
Espacio de Entrada/Salida→ El microprocesador 8086 posee también un
espacio de direcciones válido, adicional al mapa de memoria de 1MBytes, cuyo rango va del 0000h al FFFFh (64 Kbytes).
→ Sólo se utilizan 16 bits para direccionarlo A0 a A15.
→ Un Pin (M/#IO) del 8086 indica si la operación de lectura o escritura fue realizada en el espacio de memoria o en el espacio de entrada/salida.
→ Se utilizan sólo 2 instrucciones de Assembler para interactuar con este espacio (IN y OUT)
06/10/2014 Microprocesador 8086 – Digital II
49
Microprocesador 8086 – Espacio de I/O
06/10/2014 Microprocesador 8086 – Digital II
50
Microprocesador 8086 – Espacio de I/O
06/10/2014 Microprocesador 8086 – Digital II
Microprocesador 8086
06/10/2014 Microprocesador 8086 – Digital II 51
Pinout – Descripción Pin a Pin Pinout – Descripción Pin a Pin del 8086del 8086
Microprocesador 8086 - PinOut
06/10/2014 Microprocesador 8086 – Digital II 52
Bus de Direcciones:➢ 20 líneas / pines (AD0 a AD15 y A16 a A19)➢ Permiten direccionar 1MByte (220)
Bus de Datos:➢ 16 líneas / pines (AD0 a AD15)➢ AD0 a AD15 son pines compartidos entre el Bus de Direcciones y el Bus de Datos.➢ Para su utilización se requiere la multiplexación Temporal de los pines (Multiplexación del bus).
Pines de Alimentación:➢ VCC (5V) y GNDSeñal de Clock:➢ El clock del 8086 dependiendo de su modelo podrá ser de 5MHz, 8MHz o 10MHz➢ La señal deberá ser suministrada por un generador de clock externo (8284A)
Microprocesador 8086 - PinOut
06/10/2014 Microprocesador 8086 – Digital II 53
Pin de RESET:➢ Manteniendo durante cuatro ciclos de clock este pin en un nivel ALTO producirá que el microprocesador se reinicie.➢ Cuando el microprocesador se reinicia comienza a ejecutar instrucciones en la dirección FFFF0h del espacio de memoria.➢ Se deshabilitan las interrupciones.
Pin MN/#MX (Selección de Modo Máximo o Mínimo):➢ Un nivel ALTO en este pin seleccionará el modo Mínimo.➢ Un nivel BAJO en este pin seleccionará el modo Máximo.➢ Dependiendo del modo seleccionado, se dará función específica a los pines 24 al 31.
Pin #BHE (Byte High Enable):➢ Habilita la escritura de la parte alta del bus de datos del 8086 bit 8 a bit 15.
Pin READY:➢ Se emplea para introducir estados de espera (Wait-State) en los ciclos de bus del microprocesador.➢ Este pin en un nivel BAJO introducirá ciclos de espera.➢ Este pin en un nivel ALTO no tiene efectos en el funcionamiento del microprocesador.
Microprocesador 8086 - PinOut
06/10/2014 Microprocesador 8086 – Digital II 54
Pin de RESET:➢ Manteniendo durante cuatro ciclos de clock este pin en un nivel ALTO producirá que el microprocesador se reinicie.➢ Cuando el microprocesador se reinicia comienza a ejecutar instrucciones en la dirección FFFF0h del espacio de memoria.➢ Se deshabilitan las interrupciones.
Pin MN/#MX (Selección de Modo Máximo o Mínimo):➢ Un nivel ALTO en este pin seleccionará el modo Mínimo.➢ Un nivel BAJO en este pin seleccionará el modo Máximo.➢ Dependiendo del modo seleccionado, se dará función específica a los pines 24 al 31.
Pin #BHE (Byte High Enable):➢ Habilita la escritura de la parte alta del bus de datos del 8086 bit 8 a bit 15.
Pin READY:➢ Se emplea para introducir estados de espera (Wait-State) en los ciclos de bus del microprocesador.➢ Este pin en un nivel BAJO introducirá ciclos de espera.➢ Este pin en un nivel ALTO no tiene efectos en el funcionamiento del microprocesador.
Modo Mínimo Modo MáximoSingle Processor mode Multiprocessor mode
El 8086 es responsable de generar todas las señales de control para los accesos a memoria y I/O.
Un Controlador de Bus externo al 8086 será responsable de generar todas las señales de control para los accesos a memoria y I/O.
Aplicaciones simples Aplicaciones complejas
No es posible la conexión de un procesador adicional
Procesadores adicionales pueden ser conectados Ej. 8087 ( Co-Procesador matemático)
Pin # 33 es conectado a +5V Pin # 33 conectado a GND
Microprocesador 8086 - PinOut (Modo MN)
06/10/2014 Microprocesador 8086 – Digital II 55
Pin de #RD:➢ Este pin de salida cuando está en un nivel BAJO indica que el microprocesador puede recibir datos del espacio de memoria o de Entrada/Salida.Pin de #WR:➢ Este pin de salida cuando está en un nivel BAJO indica que el microprocesador está sacando datos para ser escritos en un dispositivo del espacio de memoria o de Entrada/Salida.
Pin M/#IO:➢ Este pin de salida indica si la operación de lectura/escritura se realizará con los dispositivos del mapa de memoria (nivel ALTO) o con los dispositivos del mapa de Entrada/Salida (nivel BAJO).Pin DT/#R:➢ Este Pin de salida indica si el microprocesador se encuentra transmitiendo datos (DT/#R = 1) o recibiendo datos (DT/#R = 0). Esta señal es útil para habilitar los circuitos de acoplamiento del canal de datos. Pin #DEN:➢ Este Pin de salida con un nivel en BAJO indica que el bus de datos se encuentra habilitado. Esta señal es útil para habilitar los circuitos de acoplamiento del canal de datos.
Microprocesador 8086 - PinOut (Modo MN)
06/10/2014 Microprocesador 8086 – Digital II 56
Pin #TEST:➢ Este pin de entrada funciona en conjunto con la instrucción de assembler WAIT. Si #TEST = 1 entonces la instrucción WAIT esperará hasta que #TEST = 0 para continuar con el flujo de programa.➢ Es útil para sincronizar con algún elemento externo al cual el microprocesador debe esperar que termine de realizar alguna tarea específica
Pin ALE (Address Latch Enable):➢ Este pin de salida indica que los pines AD0 a AD15 y A16 a A19 contienen una dirección válida (Memoria o Entrada/Salida).➢ Este pin se utiliza para grabar dicha dirección en un registro externo al microprocesador antes de que el microprocesador la retire.
Pin HOLD:➢ Este pin de entrada indica al microprocesador que se solicita un acceso directo a memoria. Un nivel en ALTO en este pin provocará que el microprocesador deje de ejecutar instrucciones y lleve su bus AD y de control a un estado de alta impedancia. Con un nivel BAJO en este pin el microprocesador ejecuta normalmente su programas.Pin HLDA:➢ Este Pin de salida indica si el microprocesador reconoció el pedido de HOLD y que se han concedidos los canales.
Microprocesador 8086 - PinOut (Modo MN)
06/10/2014 Microprocesador 8086 – Digital II 57
Pin NMI (Interrupción No Enmascarable):➢ Este pin es similar al INTR excepto que que no verifica cual es el estado del flag IF, por lo que cualquier pedido de interrupción que ingrese por este pin no podrá ser enmascarado.➢ Esta entrada utiliza el vector de interrupción 2.
Pin INTR (Solicitud de Interrupción):➢ Este pin de entrada se utiliza para solicitar una interrupción por hardware al microprocesador.➢ La solicitudes de interrupciones que ingresen por este pin podrán ser enmascaradas (estado del bit del registro de banderas IF – Interrupt Flag).
Pin #INTA (Reconocimiento del pedido de interrupción):➢ Este Pin de salida indica con un nivel BAJO que el microprocesador reconoció el pedido de INTR. El dispositivo externo que solicitó la interrupción deberá colocar en el bus de datos el número del vector de interrupciones para que el microprocesador identifique la rutina de servicio de interrupciones que deberá ejecutar.
Microprocesador 8086 - PinOut (Modo MN)
06/10/2014 Microprocesador 8086 – Digital II 58
➢ S5 indica el estado del flag IF (Interrupt Flag).➢ S6 siempre es un CERO lógico.➢ S7 siempre es un UNO lógico.
Pines de Estado (Status Bus – S3 a S7):➢ S3 y S4 se utilizan para identificar que registro de segmento se está utilizando en ese ciclo de bus.
Microprocesador 8086
06/10/2014 Microprocesador 8086 – Digital II 59
Generador de Clock - 8284AGenerador de Clock - 8284A
Generador de Clock - 8284A
06/10/2014 Microprocesador 8086 – Digital II 60
➢ El microprocesador 8086 no tiene integrado un generador de clock, por lo que será necesario el uso de uno externo.
➢ El fabricante (INTEL) recomienda en el manual del microprocesador el uso del 8284A.
➢ Las principales funciones que brinda este generador de clock son las siguientes:
✔ Generar la señal de clock al microprocesador (5MHz, 8MHz o 10MHz).
✔ Genera una señal de clock auxiliar para los periféricos del sistema.
✔ Maneja la señal de RESET del microprocesador.
✔ Maneja la señal de READY del microprocesador con la finalidad de insertar tiempos de espera (T-WAIT) en los ciclos de bus del 8086.
06/10/2014 Microprocesador 8086 – Digital II 61
Pines X1 y X2:➢ Pines de conexión para el oscilador a cristal de la frecuencia correcta.
Pin F/#C:➢ Este pin de entrada puesto a un nivel BAJO se selecciona el oscilador a cristal como fuente de reloj para el 8284A. Con un nivel en ALTO se selecciona la entrada externa de clock EFI.
Pin EFI:➢ Entrada externa de clock. Esta entrada puede utilizarse como fuente de clock del 8284A en lugar del oscilador a cristal.
Pin CLK:➢ Este pin de salida es el que proporciona la señal de clock para el microprocesador 8086. La frecuencia de esta señal es de 1/3 de la frecuencia del oscilador a cristal o de la señal EFI.Pin PCLK:➢ Este pin de salida es el que proporciona la señal de clock para los periféricos del sistema. La frecuencia de esta señal es de 1/6 de la frecuencia del oscilador a cristal o de la señal EFI.Pin OSC:➢ Este pin de salida presenta una señal acondicionada (niveles TTL) de la misma frecuencia que el oscilador a cristal o de la señal EFI.
Generador de Clock - 8284A
06/10/2014 Microprocesador 8086 – Digital II 62
Pin RESET:➢ Este pin de salida proporciona la señal de RESET para el microprocesador. Esta señal es #RES sincronizada con el CLK.
Pin #RES:➢ Entrada de reset del 8284A. Se conecta una red RC que proporciona la temporización y acondicionamiento de la señal para el reset.
Pines RDY1 y RDY2:➢ Estos pines indican que los canales están listos. Funcionan en conjunto con los pines #AEN1 y #AEN2.➢ Este dispositivo permite tener dos grupos de periféricos que requieran insertar una cantidad distinta de T-WAITS.
Pines #AEN1 y #AEN2 (Address Enable):➢ Estos pines (habilitación de direcciones) funcionan en conjunto con los pines RDY1 y RDY2 para generar la señal de READY del microprocesador.
Pin READY:➢ Este pin de salida que se conecta con el pin de READY del microprocesador.➢ Cuando #AEN tiene un valor bajo y RDY un valor alto, se activará en forma sincrónica la señal READY.
Generador de Clock - 8284A
06/10/2014 Microprocesador 8086 – Digital II 63
Pines VCC y GND:➢ Pines de alimentación del 8284A.
Pin #ASYNC:➢ Es una entrada que permite seleccionar una o dos etapas de sincronización para la señal de READY.
Pin CSYNC:➢ Entrada de sincronización de la señal de clock EFI. Si se utiliza el oscilador a cristal este pin debe estar a GND.➢ Esta entrada se utiliza en sistemas multiprocesadores.
Generador de Clock - 8284A
06/10/2014 Microprocesador 8086 – Digital II 64
Generador de Clock - 8284A
Aplicación típica del 8284A para la generación de las señales de Clock y Reset del microprocesadorAplicación típica del 8284A para la generación de las señales de Clock y Reset del microprocesador
PCLK
OSC
PCLK2.5MHz
15MHz
Microprocesador 8086
06/10/2014 Microprocesador 8086 – Digital II 65
Multiplexado del Bus Multiplexado del Bus Esquemas típicos de ConexiónEsquemas típicos de Conexión
06/10/2014 Microprocesador 8086 – Digital II 66
Multiplexado del Bus y Buffering
Demultiplexado del BusDemultiplexado del Bus➢ Los buses de Dirrecciones/Datos (AD0 a AD15) y Direcciones/Estados (A16/S3, A17/S4, A18/S5, A19/S6) son multiplexados temporalmente por el microprocesador para minimizar la cantidad de pines del encapsulado.➢ ¿Qué implica la Multiplexación temporal de los buses?
✔ Implica que en un momento/tiempo del ciclo de bus del microprocesador los pines del mismo (AD0 a AD15, A16/S3, A17/S4, A18/S5, A19/S6) se comportarán como bus de direcciones y en otro momento/tiempo del ciclo de bus se comportarán como bus de datos y de estados (los mismos pines!).
➢ ¿Es necesario demultiplexar los Buses?¿Por qué?✔ Cualquier dispositivo que se encuentre conectado al microprocesador (ej. una
memoria), requiere que la dirección siga siendo válida en sus pines de entrada mientras se lleva a cabo una operación de lectura o escritura del mismo
✔ Debemos salvar (grabar) la dirección válida que presenta el microprocesador en sus pines cuando este se comporta como bus de direcciones en un dispositivo externo (Latch/Registro).
74LS373 – Registros 3 estados(3-States Octal D-types Transparent Latches)
ALE (Address Latch Enable)Este pin de salida indica que los pines AD0 a AD15 y A16 a A19 contienen una dirección válida (Memoria o Entrada/Salida).
Bus de Control● M/IO: Memoria o Entrada/Salida● #RD: Lectura (READ)● #WR; Ecritura (WRITE)
74LS374 – Registros 3 estados(3-States Octal D-types Transparent Latches)
74LS245 – Transceiver (bidireccional) con salida de tres estados.Este tipo de configuración es requerido cuando las memorias o periféricos son lentos.
Sistema Totalmente BuffereadoSistema Totalmente Buffereado
DIR Direction1: 0:
è Gracias!
6906/10/2014 Microprocesador 8086 – Digital II