Está en la página 1de 9

Integrantes: Esteban Guato, Adrián Pilataxi, Alex Guerrero.

NRC: 3645 Fecha: 07/07/2017

1. Indicaciones Generales:
1. Tema: Simulación Intel 8086.
2. Fecha Límite de entrega: Una semana contando desde el día de la realización
de la práctica.
3. Documentación a entregar: Documento pdf enviado al aula virtual.

2. Objetivos:

2.1 Objetivo General.


Simular un microprocesador Intel 8086 con su respectiva demultiplexación de
buses y conexión a dispositivos de memoria y periféricos; para comprobar el
correcto funcionamiento de un programa realizado a través del programa
EMU8086.
2.2 Objetivos Específicos
Identificar los diferentes elementos que intervienen en la simulación del
microprocesador Intel 8086.
Cargar el archivo del programa EMU8086 y visualizar la función que realiza
a través de los periféricos.

3. Materiales y Equipos:

▪ Guía de Laboratorio.
▪ Computador con el programa Proteus.

4. Procedimiento:

1. Como trabajo previo a la práctica, revisar el video de Youtube llamado


Simulación 8086 (básico), que se encuentra en el siguiente enlace:
https://youtu.be/hD8cXacWeE.
2. De acuerdo al video observado con anterioridad recrear el circuito de la Figura 1,
con el uso del Simulador Proteus.
3. Después de simulado el circuito, cargar en la memoria el archivo
practica.8086.bin del EMU8086.
4. Identificar la función que cumple el programa realizado en el EMU8086.
5. Analizar cada uno de los procesos que se ejecutan desde la multiplexación hasta
la segunda parte de memorias y periféricos.

Ilustración 1. Simulación 8086

5. Preguntas:

5.1. Describa el proceso que se realiza en la demultiplexación de datos y


direcciones, es decir, la primera parte del circuito:
Las memorias y los dispositivos de entrada y salida requieren que la información de
direccionamiento permanezca constante mientras se realiza la operación de lectura y
escritura. Para este fin, como se puede apreciar en la ilustración 2, se utiliza un circuito
integrado con las denominaciones 74LS373.

Ilustración 2.CI 74ls373


Este último cuenta con la siguiente distribución de pines:

Ilustración 3.Distribución de pines 74ls373

Fuente: http://ecee.colorado.edu/~mcclurel/sn74ls373rev5.pdf

El funcionamiento es el siguiente el pin 11 (Enable) debe estar conectado al pin ALE (Adress
Latch Enable) del microprocesador, ya que este pin indica que los datos-direcciones
contienen información de direccionamiento.
La señal ALE activará los CLK o G de los latch, haciendo que el dato en el pin D pase al pin
Q, y con esto cumplimos con nuestro objetivo es decir, la información de direccionamiento
permanece constante.
A su vez, también utilizaremos otro circuito integrado, con el fin de controlar el bus de datos
y su contenido, este proceso se lo conoce como la “inclusión de buffers en buses del 8086”.
En la Ilustración 4, podemos apreciar su inmersión en el circuito.

Ilustración 4.CI 74ls245


El integrado 74LS245, trabaja conjuntamente con los pines (DT/R y DEN Data Bus Enable)
del microprocesador.
▪ El pin DEN, indica si existen datos en el bus de datos.
▪ El pin DT/R, indica si el bus de datos se encuentra transmitiendo o recibiendo
datos.
A continuación, se detalla la distribución del pines del 74ls245:

Ilustración 5..Distribución de pines 74ls245

Fuente: http://www.ti.com/lit/ds/symlink/sn74ls245.pdf

Donde DIR y OE, son activadas con los pines DEN y DT/R del microprocesador ya
explicadas previamente.
El funcionamiento es simple, el integrado 74ls245 se encarga únicamente de transmitir o
recibir contenido (datos) para el bus de datos. Es decir, tiene la función de que el bus de datos
no contenga direcciones, únicamente datos.

5.2. Describa el proceso que se realiza en memorias y periféricos de acuerdo


con el programa cargado en la memoria.
De acuerdo con el código cargado en la memoria, se realizará un salto hacia la dirección
FF100h en donde se almacenará el programa.

Ilustración 6.. Salto de 0FF0h a FF100h


Esto se debe a que el microprocesador 8086 primero accede a la dirección FFFF0h teniendo
un máximo hasta FFFFh (16 bits) para almacenar el programa, lo cual no es suficiente
espacio, solamente se puede guardar un salto hacia otra dirección inferior para guardar
completamente el programa.
Después del salto movemos a nuestro registro de datos (dx) la localidad desde donde está
inicialmente guardado el programa, movemos lo que esté en el registro acumulador al registro
de segmento “ds” y establecemos la longitud del mensaje en el registro contador (Cx).

Ilustración 7.. Ejecución del programa

Establecemos la etiqueta mensaje la cual contendrá el arreglo de los datos a mostrarse en el


display y también establecemos las direcciones de la memoria que ocuparan los displays

En los periféricos de salida (Displays) deberán cumplir con la siguiente tabla:

SALIDA DE DATOS DE LA MEMORIA


D0 D1 D2 D3 D4 D5 D6 D7
a b c d e f g pd Display hex
0 1 1 0 1 1 1 0 h 6E
1 1 1 1 1 1 0 0 o FC
0 0 0 1 1 1 0 0 l 1C
1 1 1 0 1 1 1 0 a EE
0 1 1 0 0 0 0 0 1 60
1 1 0 1 1 0 1 0 2 DA
1 1 1 1 0 0 1 0 3 F2
0 0 0 0 0 0 0 1 . 01
Tabla 1. Salto de 0FF0h a FF100h

Para ello se han utilizado las direcciones a partir de la FF800h (definida por las entradas de
la memoria ROM desde A8 hasta A11), las cuales posteriormente serán utilizadas en la
decodificación
Se procede a cargar la dirección inicial establecidas en “mensaje” (es un arreglo de datos),
luego movemos esa dirección inicial al registro acumulador, y éste último lo volvemos a
mover al arreglo “displays”, se hace en dos pasos debido al direccionamiento parcial.
Luego incrementamos al registro “bx” que contiene las direcciones de los datos a mostrarse
en los displays en 1 para tener solo localidades pares, el comando loop lo usamos para crear
un bucle con la etiqueta imprime
Ilustración 8.. Cambio de direcciones de memoria de los datos al display

5.3. ¿Que función cumplen los LED y displays en el circuito?


Los display y leds son los dispositivos de Salida, es decir, los periféricos, nos servirán para
visualizar el mensaje “HOLA123.”
5.4. ¿Cuáles son las diferentes conexiones que se le deben realizar al Intel 8086
de acuerdo con el video?, para que este funcione adecuadamente.
La señal de reloj debemos poner externa con una frecuencia de 5hz. Se debe conectar además
los circuitos para la de-multiplexación de datos y direcciones. También se debe conectar
READY y MN/𝑀𝑋 ̅̅̅̅̅ a un nivel alto, además en la simulación no se deberá cargar ningún
archivo de programa dentro del microprocesador debido a que dentro del microprocesador
no debería existir ningún tipo de memoria, cabe recalcar que los microprocesadores actuales
poseen una memoria denominada cache, pero está memoria es reservada para otro propósito
ya que muy rápida, pero de poca capacidad.
5.5. Explique la razón de las conexiones realizadas en el decodificador de
direcciones:
Las tareas del decodificador son distintas, entre las más importantes tenemos:
- Habilitar la memoria ROM.
- Habilitar la memoria RAM.
- Habilitar el adaptador de interfaz de salida.
- Habilitar el adaptador de interfaz de entrada.
Existen 2 tipos de decodificación de direcciones:
➢ Decodificación Parcial de direcciones.
➢ Decodificación total de Direcciones.
La diferencia radica en que la Decodificación Parcial de direcciones, acoge una parte del bus
de direcciones, mientras que la Decodificación total de Direcciones, emplea todo el bus. A
continuación se ilustran las configuraciones de dichos tipos:
Ilustración 9. Decodificación Parcial de Direcciones

Ilustración 10. Decodificación Total de Direcciones


Fuente: Diapositivas Curso Microprocesadores.

En este circuito, se evidencia claramente una Decodificación Parcial de direcciones, es decir:

Ilustración 11. Decodificación Parcial de Direcciones


Es obvio pensar que no se realiza una Decodificación total de Direcciones por su rapidez y,
porque se tomaría todo el bus de Direcciones y también se necesitaría de mucho hardware,
es decir más costo.

Conclusiones
• Se vio el funcionamiento del 8086 y sus cambios en las direcciones conforme va
ejecutando las instrucciones.
• Se apreció con claridad el uso y funcionalidad de varias instrucciones que hacen
posible que la salida sea una palabra de forma secuencial.
• Se pudo ver el funcionamiento del direccionamiento parcial mediante los bits más
significativos de las direcciones de memoria.
• Se apreció la forma de funcionamiento de la de multiplexación del bus de datos y
direcciones del 8086.

Recomendaciones
• Para la simulación es recomendable tener la última versión del programa, ya que
puede dar inconvenientes de librerías con el microprocesador 8086/8088
• No implementar el circuito con altas frecuencias en la simulación ya que puede dar
problemas y no se podrían visualizar correctamente los datos en los periféricos.

Referencias
[1] B. B. Brey, The Intel Microprocessors. Pearson Education, nov. 2011.
[2] J. Torres Tello, “Curso de microprocesadores.”.
[3]Distribuciones de pines 74ls373, obtenido de:
http://ecee.colorado.edu/~mcclurel/sn74ls373rev5.pdf

También podría gustarte