Microprocesadores. Guía 1
1
Facultad: Ingeniería.
Escuela: Electrónica.
Asignatura: Microprocesadores.
Lugar de ejecución: Microprocesadores (Edificio 3, 2da
planta).
INTRODUCCIÓN AL EMU8086 .
Objetivos específicos
•
•
•
Identificar los principales elementos que conforman el ambiente Integrado de Programación (IDE)
del programa EMU8086.
Identificar los elementos que conforman un código fuente típico, escrito con la sintaxis del
lenguaje ensamblador de la familia 8086.
Crear códigos fuentes usando la sintaxis del lenguaje ensamblador.
Materiales y equipo
•
1 Computadora con el programa EMU8086 y el archivo IO_BAS.INC
Procedimiento
1) Ejecute el programa emulador de microprocesadores EMU8086.
2) En la ventana de bienvenida seleccione la opción “new”.
3) En la ventana donde elige el tipo de plantilla selecciones la opción “empty workspace” y
luego de clic en OK.
4) Una vez esté abierto el IDE y usando la opción “open” verifique que en la sub-carpeta “inc”
(C:\emu8086\inc) existe el archivo “IO_BAS.inc”, en la opción tipo seleccione “all files (*.*)”. Si
el archivo no está comuníqueselo al docente de laboratorio.
5) Escriba en el IDE el código fuente en lenguaje ensamblador que se muestra a continuación. Por
favor no digite los comentarios (Sentencias seguidas después del ; ) .
2
Microprocesadores. Guía 1
PROGRAMA EN LENGUAJE ENSAMBLADOR
include IO_BAS.INC ;Indica al compilador que incluya la librería respectiva.
;El archivo IO_bas.INC debe estar almacenado en
;la carpeta inc del emulador
.model small
;Indica al compilador el modelo de memoria que se usara
;en este caso se usa un modelo pequeno
;=====================================================
;ZONA PARA DECLARAR LAS VARIABLE Y CONSTANTES DEL PROGRAMA
;
;SE LE CONOCE COMO SEGMENTO DE DATOS
;
;Inicia con la directiva simplificada .data
;=====================================================
.data
frase db 'HOLA MUNDO',0Ah,0Dh,'$'
;Declara cadena que se va a imprimir
pak
db 'Presione cualquier tecla para terminar el programa$'
;===========================================================
;ZONA PARA ESCRIBIR LAS INSTRUCCIONES, MACRO-INSTRUCCIONES
;Y PROCDIMIENTOS QUE SE EJECUTARAN.
;
;SE LE CONOCE COMO SEGMENTO DE CODIGO
;
;Inicia con la directiva simplificada .code
;==========================================================
.code
INICIO:
mov ax, @DATA ;Bloque de instrucciones que ubica la zona de
;memoria donde estan almacenados los datos
;con los que el programa va a trabajar.
;Se utiliza la instruccion MOV (mover) para
;trasladar al registro AX la direccion de memoria
;donde inicia este bloque
mov ds, ax ;Transfiere (en realidad copia) el contenido del
;registro AX al registro DS
Imprimir_Cadena frase
;Macro-Instruccion que imprime la cadena llamada frase
Imprimir_Cadena pak
;Macro-Instruccion que imprime la cadena llamada fin
Presione_Tecla_Fin
;Macro-Instruccion que espera a que se
;presione cualquier tecla para seguir adelante
FIN:
mov ax, 4C00h ;Bloque de instrucciones que terminan el programa
int 21h
;==========================================================
;ZONA DE MEMORIA DONDE SE ALMACENAN DATOS INTERMEDIOS QUE SE CREAN
;DURANTE LA EJECUCION DEL PROGRAMA.
;
;SE LE CONOCE COMO SEGMENTO DE PILA
;
; Inicia con la directiva simplificada .stack
;==========================================================
.stack
end INICIO
6) Guarde el archivo en la carpeta “MySource” asignándole por nombre su número de carnet.
¿Cuántos bytes contiene el archivo fuente que ha digitado? ___________________________
Microprocesadores. Guía 1
3
7) Compile el archivo ASM, dando clic en el botón llamado “compile” . Si se encuentra con algún
mensaje de error corríjalo, si tiene dificultades consulte con su docente de laboratorio. Si no tiene
errores se le pedirá que asigne un nombre al archivo EXE, por defecto el programa le asigna el
mismo nombre que el código fuente, pero puede colocarse otro. Para este caso mantenga el
nombre por defecto.
8) Cierre la ventana “assembler status” (Estado del proceso de compilación).
¿Cuántos bytes contiene el archivo ejecutable que se ha creado? __________
9) Emule el archivo EXE, dando clic en el botón llamado “emulate”. Notará que se abren dos
ventanas, una que muestra el código fuente original (Original Source Code) y la otra es la del
emulador (emulator) que se muestra en la Figura 1.1.
Figura 1.1 Ventana “emulator”
10) Observe la ventana “original source code”
¿Qué línea aparece resaltada y por qué lo está?___________________________________________
____________________________________________________________________________________
11) Ejecute el programa presionando el botón “run” de la ventana “emulator”.
12) Siga las instrucciones del programa hasta que observe una ventana con un mensaje que indica la
finalización del programa.
4
Microprocesadores. Guía 1
13) Muestre a su docente de laboratorio el resultado de la ejecución del programa, si no es la
esperada realice las correcciones pertinentes.
14) Si el resultado es satisfactorio ¿Cuál es la última instrucción resaltada?
___________________________________________________________________________________
15) Describa con sus propias palabras, pero usando un buen lenguaje técnico que es lo que hizo el
programa:
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
16) Recargue el programa usando el botón “reload”.
17) En la ventana “emulator” (Figura 1.1) en la parte que dice “registers” observe cual es el contenido
del registro AX y anótelo a continuación:
AX=____ ____
18) En esa misma ventana presione el botón “single step” , para ejecutar paso a paso el programa.
Note que han sucedido varias cosas, la instrucción resaltada ahora es “mov DS, AX” y el
contenido de AX ha cambiado. Anote el contenido de los registros AX y DS
AX: ____ ____
DS: ____ ____
19) Presione nuevamente “single step” , para ejecutar la siguiente línea de instrucción. ¿Cuál es el
nuevo valor de DS? ____ ____
20) Ahora presione el botón “step back” ¿Qué cambios observa? _____________________________
____________________________________________________________________________________
____________________________________________________________________________________
21) Presione nuevamente “single step” .
¿Cuál línea está resaltada? _____________________________________________________________
¿Qué diferencia hay entre esta línea y las dos anteriores?
____________________________________________________________________________________
____________________________________________________________________________________
22) Presione cuatro veces “single step” .
¿Qué ocurrió? _______________________________________________________________________
¿Qué texto se imprimió en la pantalla? __________________________________________________
Microprocesadores. Guía 1
5
23) Presione cinco veces “single step”.
¿Qué ocurrió? _______________________________________________________________________
24) Presione cuatro veces “single step”.
¿Qué ocurrió? _______________________________________________________________________
25) Realice la acción que el programa le pide.
26) Avance un paso más.
¿Se cerró el programa al ejecutar “Presione_Tecla_Fin”? ____________________________________
¿Cuál línea está resaltada? _____________________________________________________________
27) Avance un paso más.
¿Qué registro cambió y cuál es su nuevo valor?
___________________________________________________________________________________
28) Avance un paso más.
¿Se ejecutó esta instrucción como la anterior? ____________________________________________
29) Avance hasta terminar el programa.
30) En la ventana “emulator” ubique en la parte baja el botón “vars” que le permite visualizar las
variables declaradas, presione este botón.
31) Debe observar algo similar a lo mostrado en la Figura 1.2.
En esta ventana se le indica que se han declarado dos variables, que cada una se está mostrando
en grupos de bytes (48h y 50h), que solo se está visualizando 1 byte de cada variable y que los
datos se muestran en formato hexadecimal.
Figura 1.2. Ventana de variables.
6
Microprocesadores. Guía 1
32) Cambie el formato de visualización de las dos variables de hexadecimal a ASCII.
¿Qué relación hay entre las variables declaradas en el código fuente y lo que observa en la
ventana de variables?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
33) Para el caso de la variable “frase” cambie el número de bytes visualizados de 1 a 13 y en “pak”
de 1 a 51.
34) En esta ventana podrá monitorear en tiempo real los cambios en las variables declaradas y será de
gran ayuda para comprender muchos de los programas que se desarrollen en el laboratorio.
35) Para terminar modifique el código fuente para que aparezca en la pantallas los siguientes textos:
“Mi nombre es: ………….”
“Que tenga un buen día”
36) Cuando este lista la modificación muestre el resultado al docente de laboratorio. Con esto último
se da por finalizado el procedimiento.
Análisis de Resultados
1. ¿Qué problema se hubiera presentado si no se tuviera copia del archivo IO_BAS.INC?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
2. ¿Existen diferencias entre los formatos de las variables declaradas y los textos que se imprimen en
pantalla? De ser así ¿cuáles son las diferencias? y ¿a qué se deben?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
3. Cuando se ejecutó el programa paso a paso no todas las líneas del código se ejecutaron de la
misma manera. Agrupe las líneas de instrucción en base a la forma en que se ejecutan.
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Microprocesadores. Guía 1
7
4. ¿Investigue qué diferencia hay entre una instrucción, una Macro-instrucción y una Interrupción?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Investigación Complementaria
1) En la variable llamada “frase” ¿qué función cumplen los datos 0Ah y 0Dh?
2) ¿Cuál es la relación de estos datos y el código ASCII?
3) En un compilador de C++ escriba y luego compile el código de C del tutorial, luego compare el
tamaño de los archivos fuentes y ejecutables con los obtenidos en esta práctica. ¿Por qué hay
diferencias?
Bibliografía
•
Tutorial del Emu8086 (se lo proveerá su docente teórico).
•
8086 assembler tutorials que está incluido en el programa Emu8086.
8
Microprocesadores. Guía 1
Hoja de cotejo:
1
Guía 1: INTRODUCCIÓN AL EMU8086.
Puesto No:
Alumno:
GL:
Docente:
Fecha:
EVALUACION
%
CONOCIMIENTO
35
1-4
Conocimiento deficiente de
los siguientes fundamentos
teóricos:
-Que es el EMU8086 y las
partes que lo componen.
5-7
8-10
Conocimiento y
explicación
incompleta de los
fundamentos
teóricos.
Conocimiento
completo y
explicación clara de
los fundamentos
teóricos.
Cumple sólo con
dos de los
criterios.
Cumple con los tres
criterios.
-Hace uso
adecuado de los
recursos de
manera segura,
pero es
desordenado.
-Hace un manejo
responsable y
adecuado de los
recursos de acuerdo a
pautas de seguridad e
higiene.
-Funciones del EMU8086.
APLICACIÓN
DEL
CONOCIMIENTO
60
Cumple sólo con uno o
ninguno de los siguientes
criterios:
-crea código fuente en
ensamblador.
-compila y ejecuta los
programas.
-interpreta correctamente la
información del emulador.
5
ACTITUD
TOTAL
100
-Es ordenado pero no hace
uso adecuado de los
recursos.
Nota