GUÍA I. TEMA: INTRODUCCIÓN AL EMU8086 Lugar de ejecución: Laboratorio Electrónica Digital. Tiempo de ejecución: 8 hrs. Departamento: Año: Ciclo: Electrónica Tercero II Asignatura: Microprocesadores. I. Objetivos 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. Compilar y ejecutar programas escritos en lenguaje ensamblador. II. Introducción Teórica El Emulador EMU8086 es el primer programa que se utiliza en el curso de Microprocesadores que imparte la Universidad Don Bosco; se ha elegido este emulador porque posee una interfaz de usuario muy amistosa que permite familiarizarse con los fundamentos de la programación en lenguaje ensamblador de forma muy intuitiva, aparte de eso brinda una serie de recursos para ejecutar y depurar los programas. También tiene algunas desventajas como el de no soportar algunas de las interrupciones más interesantes que posee el sistema operativo y tampoco puede acceder a los puertos físicos (reales), sino que los emula usando otros programas que ya están incluidos en su respectiva carpeta. Para iniciar se debe ejecutar el archivos EMU886.exe, que se encuentra en la carpeta del mismo nombre, en el directorio raíz; seguramente en la computadora donde corra el programa tendrá otras alternativas para activar el programa, como un acceso directo en el escritorio o en el menú de programas del sistema operativo Si está ejecutando la versión 4.05 del EMU8086 observará primero la pantalla de bienvenida (welcome), similar a la que se muestra en la Figura 1. Fig. 1 1 Se presentan cuatro diferentes opciones para elegir: New : Le permite escribir un nuevo código en lenguaje ensamblador (al que llamaremos “Código Fuente” y tendrá extensión .ASM) Code examples: Le permite acceder a una serie de programas ejemplos que pueden ayudarle a comprender funciones más complejas. Recent File: le muestra los últimos archivos que se trabajaron en la máquina. Para continuar este primer contacto con el emulador, seleccioneNew. Observará una nueva caja de dialogo “choose code template”, como se muestra en la Figura 2. Figura 2. Caja de dialogo para seleccionar el tipo plantilla (template). En ella se le presentan seis opciones, cuatro que le permiten usar plantillas predefinidas con algunos de los tipo de archivo que se pueden crear en lenguaje ensamblador: COM template, EXE template, BIN template y BOOT template (cada uno le permite diferentes características que se abordaran a su debido tiempo en el curso). Dos que le permiten usar un espacio vacío “empty workspace” (sin una plantilla) o activar el emulador mismo. Selecciones la opción del espacio vacío. Observará la ventana de edición o mejor dicho el Entorno de Desarrollo Integrado (Integrated Development Environme IDE), como se muestra en la Figura 3, donde escribirá sus archivos fuentes en lenguaje ensamblador, por favor lo confunda con el lenguaje de máquina. Podrá ver una barra de menú de Windows con sus opciones file, edit, etc. pero también vera unas opciones poco usuales como assembler, emulator, etc. propias del emulador. También vera una serie de botones que le permitirán crear un nuevo archivo (new), abrir un archivo que ya existe (open), abrir un ejemplo (examples), compilar un archivo fuente (compile), emular un archivo ejecutable (emulate) y otras opciones que irá descubriendo a medida que se familiarice con el programa. 2 1 III. Materiales y Equipo CANTIDAD DESCRIPCION Computadora con el programa 1 EMU8086 y el archivo IO_BAS.INC OBSERVACIONES. IV. 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”. 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 encuentra en el tutorial que estudió previamente a esta actividad. Por favor no digite los comentarios. 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? __________. 7) Compile el archivo ASM. 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. Notará que se abren las dos ventanas ya explicadas en el documento: “emulator” y “original source code”. 3 10) Observe la ventana “emulator” ¿Encuentra alguna diferencia con la Figura 7 del tutorial?_____________________________________________ 11) Observe la ventana “original source code” ¿Qué línea aparece resaltada y por qué lo está? _______________________________________________ 12) Ejecute el programa presionando el botón RUN. 13) Siga las instrucciones del programa hasta que observe una ventana con un mensaje que indica la finalización del programa. 14) Muestre a su docente de laboratorio el resultado de la ejecución del programa, si no es la esperada realice las correcciones pertinentes. 15) Si el resultado es satisfactorio ¿Cuál es la última instrucción resaltada? ______________________________________________________________ 16) Describa con sus propias palabras, pero usando un buen lenguaje técnico que es lo que hizo el programa: ______________________________________________________________ 17) Recargue el programa usando el botón “reload”. 18) En la ventana “emulator” observe cual es el contenido del registro AX y anótelo a continuación: _____________________________ 19) 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. Lo anterior comprueba lo planteado en el primer bloque del flujo-grama en el tutorial (Figura 4). Anote el contenido de los registros AX y DS AX: __________ DS: __________ 20) Presione nuevamente “single step”, para ejecutar la siguiente línea de instrucción. ¿Cuál es el nuevo valor de DS? _________ 21) Ahora presione el botón “step back” ¿Qué cambios observa? ______________________________________________________________ ______________________________________________________________ 22) Presione nuevamente “single step”. ¿Cuál línea está resaltada? ________________________________________ ¿Qué diferencia hay entre esta línea y las dos anteriores? ______________________________________________________________ ______________________________________________________________ 4 23) Presione cuatro veces “single step”. ¿Qué ocurrió? __________________________________________________ ¿Qué texto se imprimió en la pantalla? ______________________________ 24) Presione cinco veces “single step”. ¿Qué ocurrió? __________________________________________________ 25) Presione cuatro veces “single step”. ¿Qué ocurrió? __________________________________________________ 26) Realice la acción que el programa le pide. 27) Avance un paso más. ¿Se cerró el programa al ejecutar “Presione_Tecla_Fin”? ________________ ¿Cuál línea está resaltada? ________________________________________ 28) Avance un paso más. ¿Qué registro cambió y cuál es su nuevo valor? ______________________________________________________________ 29) Avance un paso más. ¿Se ejecutó esta instrucción como la anterior? _________. 30) Avance hasta terminar el programa. 31) En la ventana “emulador” ubique en la parte baja el botón “vars” que le permite visualizar las variables declaradas, presione este botón. 32) Debe observar algo similar a lo mostrado en la figura 1. 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. 5 Figura 1. Ventana de variables. 33) 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? ____________________________________________________________ 34) 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. 35) 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. 36) 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” 37) Cuando este lista la modificación muestre el resultado al docente de laboratorio. Con esto último se da por finalizado el procedimiento. 6 V. Análisis de Resultados 1. En la variable llamada “frase” ¿qué función cumplen los datos 0Ah y 0Dh? ¿Cuál es la relación de estos datos y el código ASCII? 2. 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? VI. Investigación Complementaria Investigar sobre las instrucciones que permiten manipular el puerto serie y el puerto paralelo. VII. Bibliografía 8086 assembler tutorials que está incluido en el programa Emu8086. http://www.scribd.com/doc/10161583/Tutorial-EMU8086 7