Introducc Di ión a igital al ento l II orno emu 8086 6
Transcripción
Introducc Di ión a igital al ento l II orno emu 8086 6
Diigitall II Introd ducción al a ento orno emu8086 6 Departam mento de e Sistema as e Informática Escuela a de Electtrónica F Facultad de d Cs. Exxactas, In ngeniería y Agrime ensura U Universid dad Nacio onal de R Rosario Ing. André és Capalbo o Ing. Diego Alegrechii ban Almirón n Ing. Esteb Nov viembre 2010 0 Universidad Nacional de Rosario FCEIA Digital II Tabla de contenidos 1 2 Introducción .................................................................................................................... 3 Instalación del entorno .................................................................................................. 3 2.1 Emu8086 .................................................................................................................................. 3 2.1.1 Windows XP ..................................................................................................................... 3 2.1.2 Windows Vista y 7 ............................................................................................................ 4 2.2 Dispositivos Virtuales de Digital II ............................................................................................ 4 3 4 Utilización del entorno ................................................................................................... 5 El Emulador..................................................................................................................... 8 4.1 Mapa de memoria .................................................................................................................. 10 4.1.1 Custom Memory Map ..................................................................................................... 10 4.1.2 Interrupciones ................................................................................................................. 11 4.1.3 Puertos de entrada/salida ............................................................................................... 12 4.2 Dispositivos Virtuales (DVIO) ................................................................................................. 13 4.2.1 DVIO Digital II ................................................................................................................. 13 4.2.2 Documentación de los Dispositivos Virtuales ................................................................. 13 4.2.3 Ejemplo – Problema Resuelto ........................................................................................ 14 4.2.4 Ejemplo – Dispositivos Tanque y Pulsadores ................................................................. 14 4.3 Documentación emu8086 ...................................................................................................... 15 4.3.1 Set de instrucciones 8086 .............................................................................................. 16 Tabla de Figuras Figura 1 – Instalación DVIO ....................................................................................................................... 4 Figura 2 – Archivo de configuración dvio.ini............................................................................................... 5 Figura 3 – Ventana de inicio del emu8086 ................................................................................................. 5 Figura 4 – Elección del tipo de template .................................................................................................... 6 Figura 5 – Ventana principal emu8086 ...................................................................................................... 7 Figura 6 – Editor de código fuente ............................................................................................................. 7 Figura 7 – Código fuente durante la emulación ......................................................................................... 7 Figura 8 – Emulador .................................................................................................................................. 8 Figura 9 – Extended Viewer....................................................................................................................... 9 Figura 10 – Flags y mapa de memoria .................................................................................................... 10 Figura 11 – Emulador, código fuente ....................................................................................................... 10 Figura 12 – Custom Memory Map............................................................................................................ 10 Figura 13 – Interrupt Vector Table (IVT) .................................................................................................. 11 Figura 14 – Emulador – Interrupción por Hardware ................................................................................. 12 Figura 15 – Dispositivos Virtuales – Digital II ........................................................................................... 13 Figura 16 – Ayuda Dispositivos Virtuales ................................................................................................. 14 Figura 17 – Ejemplo de dispositivos virtuales y emulador........................................................................ 15 Figura 18 – Documentación y tutoriales emu8086 ................................................................................... 15 Noviembre 2010 Introducción al emu8086 2 de 16 Universidad Nacional de Rosario FCEIA Digital II 1 Introducción Hasta el año 2009 en la cátedra de Digital II hemos utilizado la herramienta MASM 6.11 para la realización del segundo trabajo práctico de assembler. A partir del año 2010 hemos introducido una nueva herramienta llamada “emu8086” reemplazando al MASM. El emu8086 es un emulador del microprocesador 8086 (Intel o AMD compatible) con assembler integrado. A diferencia del entorno de programación en assembler utilizado anteriormente en la cátedra (MASM), este entorno corre sobre Windows y cuenta con una interfaz gráfica muy amigable e intuitiva que facilita el aprendizaje el leguaje de programación en assembler. Dado que en un entorno emulado de microprocesador no es posible implementar una interfaz real de entrada/salida, el emu8086 permite interfacear con dispositivos virtuales y emular una comunicación con el espacio de E/S. Para esto, el emu8086 cuenta con una serie de dispositivos virtuales preexistentes en el software base, listos para ser utilizados, entre los que se encuentran una impresora, un cruce de calles con semáforos, un termómetro, un motor paso a paso, etc. No obstante, la cátedra ha desarrollado dispositivos adicionales con características particulares para la realización del segundo trabajo práctico. Se muestra a continuación una tabla comparativa con las diferencias entre el entorno de programación en assembler utilizado anteriormente en la cátedra (MASM 6.11) y el nuevo emu8086: Emu 8086 Microsoft Assembler (MASM 6.11) Entorno educativo Entorno para producción y educativo. Basado en Windows Basado en DOS En forma virtuales. nativa admite dispositivos No admite dispositivos virtuales en forma nativa Set de instrucciones de 8086 Set de instrucciones del 8086, 80186/286/386/486 Directivas propias adicionales Directivas comunes con TASAM (Borland Turbo Assembler) Emula interrupciones por Hw y Sw No permite emular interrupciones Emula el espacio de E/S (instrucciones IN y OUT) No permite emular el espacio de E/S Permite emular interrupciones. No permite emular intrrupciones. Herramientas adicionales para el debug 2 Instalación del entorno En la cátedra de Digital 2 utilizaremos el emu8086 pero de manera combinada con dispositivos virtuales desarrollados por la cátedra. Por esta razón será necesario descargar de la página de la cátedra e instalar dos programas. 2.1 Emu8086 En primer lugar descargar el archivo instalador del emu8086 de la página web de la cátedra el siguiente archivo: http://www.dsi.fceia.unr.edu.ar/downloads/digital_II/EMU_Setup.zip Luego ejecutar el instalador y seguir los pasos de instalación teniendo en cuenta los comentarios siguientes. 2.1.1 Windows XP Para la instalación en Windows XP no es necesario tener cuenta ninguna consideración en particular, sólo basta con seguir los pasos indicados por el instalador y aceptar las configuraciones por defecto propuestas por el emu8086. Noviembre 2010 Introducción al emu8086 3 de 16 Universida ad Nacional de Rosario FCEIA Digital II El directtorio de insta alación por defecto d es C:\emu8086. C Adicionalme ente, los siguientes dos archivos se e instalan en la raíz de el disco C: C:\emu8 8086.hw C:\emu8 8086.io 2.1.2 Windows Vista V y7 En Wind dows Vista y XP no es po osible, por cu uestiones de e seguridad, que el emu8 8086 se insta ale en la raízz del disco o C. Para evvitar esta situ uación, en el momento de la instalación del emu8 8086 se deb be elegir otra a ubicación para la instalación de el programa, por ejemplo o otra particción (D\:) o el e directorio Archivos de e ma1. Program Al haberr elegido otro o sitio de insstalación disstinto al prop puesto por defecto, es necesario mo odificar en ell EMUPOR archivo c:\emu8 8086\emu808 86.ini los valore es de RT=c:\emu80 086.io y HW_INT TERRUPT_F FILE=c:\emu8 8086.hw para a indicarle all emu8086 la a nueva ubiccación de esttos archivos. 2.2 D Dispositiv vos Virtua ales de Diigital II Adiciona almente a loss dispositivoss nativos del emu8086, la cátedra de Digital II desarrolló 10 dispositivoss adiciona ales que son los utilizado os en el Tra abajo Prácticco N°2. Para a poder utiliz zar estos disspositivos se e debe desscargar de la a página de la l cátedra e instalar el siguiente arch hivo: http://ww ww.dsi.fceia.u unr.edu.ar/do ownloads/dig gital_II/Digi2IIO_Setup.zip p Instalar llos DVIO (Diispositivos Virtuales V de Entrada/Salid E da) en el missmo directorio en el cual se instaló ell emu8086 6, ver por eje emplo Figura a 1. Figura a 1 – Instalacción DVIO Luego de finalizado el proceso de d instalación n se debe ed ditar el archiivo dvio.ini y modificar ell path con la a ubicación correcta de e los archivo os emu8086.io y emu808 86.hw. 1 Por defeccto Windows Vista/7 no permite en modificar arc chivos ubicadoss directorio Arch hivo de Program mas (o Program Files), por esta a razón para a poder editar el e archivo emu8086.ini luego de e la instalación se debe previa amente modifica ar de manera te emporal el nivell de segurid dad y protección n de usuario de Windows. Para a esto ir a Control Panel Æ Sy ystem and Security Æ Action Center, C luego en n Security de ebajo de User Account A Contro ol hacer click en n Change Settin ngs. Llevar la barra de desplazzamiento al nive el de seguridad d más bajo ((Never notify) y aceptar. Editar ahora el archiv vo emu8086.in, luego de esto re estaurar el nivel de seguridad al a que tenía porr defecto. Noviembre e 2010 Introducción al emu8086 4 de 16 Universida ad Nacional de Rosario FCEIA Digital II Fiigura 2 – Arc rchivo de con nfiguración dvio.ini 3 Utilización n del ento orno Para inicciar el entorrno se deje ejecutar el archivo a emu u8086.exe qu ue se encue entra en el directorio d de e instalació ón (ej. c:\em mu8086). F Figura 3 – Ve entana de inicio del emu8086 Luego de e iniciar el en ntorno el em mu8086 ofrece diferentes opciones: Noviembre e 2010 Introducción al emu8086 5 de 16 Universida ad Nacional de Rosario FCEIA Digital II New: pe ermite escrib bir un nuevo o código en n lenguaje ensamblado e r (“Código F Fuente” con n extensión .ASM) Code ex xamples: permite accede er a una serie e de program mas ejemplos muy útiles al momento o de apren nde a utilizar el entorno y la programa ación en assembler. Quick start s tutor: llama l al bro owser y perm mite explorar gran varie edad de doccumentos de e ayuda. Recent file: f muestra a los últimos archivos con n los cuales se s estuvo tra abajando. En el casso de hacer click en New w, el entorno ofrece traba ajar con diferrentes plantillas o templates: E del tipo de temp plate Figura 4 – Elección COM tem mplate (direcctiva #make_ _com#): es el formato más m simple y antiguo de e un archivo o ejecutab ble, típicamen nte estos arc chivos se carrgan con un offset de 10 00h (256 byte es). Por esta a razón se e debe agre egar la dire ectiva ORG 100h al co omienzo del código parra indicar la a utilizació ón de este tipo t de arch hivos. Forma ato soportad do por DOS S y Windowss Command d Prompt. EXE tem mplate (direcctiva #make_exe#): este e es el form mato más avanzado de e un archivo o ejecutab ble. No tiene limitacioness en cuanto al tamaño del d archivo y número de segmentos.. Este tem mplate permitte crear un programa p exxe simple co on los segme entos de cód digo, datos y pila pred definidos. Esste tipo de archivo a está soportado por p Windows s y Windowss Command d Prompt. El ensamb blador elige automáticam mente este tipo de arcchivo cuando o encuentra a o de pila. definido un segmento BIN temp plate (directiva #make_b bin#): es un a archivo ejecu utable simple e. Permite de efinir el valorr de todos s los registro os, segmento os y el lugar de memoria a donde se cargará a estte programa.. Cuando por ejemplo o el ensamblador carga el archivo "MY.BIN" en el emulador buscará ell e "MY.BIN" en la ubiccación espe ecificada en n archovo "MY.BINF" y cargará al archive "MY.BIN NF", al igual que el valorr inicial configurado para a todos los registros. r En n el caso de e que el emulador e no o encuentre al archivo "MY.BINF", se utilizará á el valor acctual de loss registross al momento o de la ejeccución del .B BIN y este có ódigo se ubicará en los valores que e tengan en e ese mome ento CS:IP. BOOT te emplate (dire ectiva #make e_boot#): fun nciona igual de que un .BIN, pero uttiliza valoress predefiniidos para ub bicar el códig go y que coin nciden con el primer trackk de un flopp py disk (boott sector). La única diferencia con la directivva #make_b bin# es que carga el código c en la a n predefinida a 0000:7c00h h. Este temp plate permite e emular el bootedo b de una u IBM PC C dirección desde el floppy disk. En Digita al II utilizarem mos para la resolución del trabajo prráctico un tem mplate modifficado y no trrabajaremoss con ning guno de estos cuatro te emplates pre edefinidos en n el emu808 86, con lo cual c en esta ventana se e deberá seleccionar s la a opción “em mpty workspa ace”. Luego de esto tendre emos acceso o a la ventan na principal del d emuladorr que cuenta a con una ba arra de menú ú dit, bookmarkks, assemble er, etc.) y varrios botones de uso frecuente como New, Open,, de Windows (file, ed Noviembre e 2010 Introducción al emu8086 6 de 16 Universida ad Nacional de Rosario FCEIA Digital II Save, Compile o Em mulate. Esta ventana es en definitiva a un editor de e texto que permite crea ar y editar ell código fu uente de asssembler. Figura 5 – Ventana prin ncipal emu80 086 Para verr rápidamentte las princip pales funcion nes del emu8086 proced demos a abrrir uno de loss programass de ejemp plo, el C:\em mu8086\exam mples\1_sam mple.asm o “Hello, world”” si optamos por seleccio onarlo desde e el botón rápido “exam mples”. Figura 6 – Editor de código c fuente e al presionar el e botón “Em mulate” se ab brirán dos nu uevas ventan nas, una es el e emulador propiamente p e Luego, a dicho (F Figura 8 – Em mulador) y la a otra muestra el código fuente durante la emula ación (Figura a 7 – Código o fuente durante la em mulación). Fig gura 7 – Cód digo fuente du urante la em mulación Noviembre e 2010 Introducción al emu8086 7 de 16 Universida ad Nacional de Rosario FCEIA Digital II 4 El Emulado or Luego de cargar el código c en el emulador all hacer click en el en “Em mulate” variedad d de funcione es e informacción: Direcciones Cód digo cas Físic Máquin na (HEX) C Código Máquina a Código (ASCII) Máq quina (DEC) , se s tendrá accceso a gran n Có ódigo Desens samblado o inte ermedio Fig gura 8 – Emulador En la parte superior de la ventana se puede ver v la barra d de herramien ntas con las siguientes opciones: File, perm mite adminisstrar (cargar o guardar) lo os archivos que q va crean ndo o ejecuta ando Math, da a acceso a un na calculado ora y un convvertidor en ba asas de num meración. Debug, provee p herra amientas para a depurar prrogramas. View, pe ermite abrir otras ventanas que pue eden ser de e mucha ayu uda al ejecu utar depurarr programas. External, permite eje ecutar el prog grama con ottras herramie entas diferen ntes del EMU U8086. Virtual de evices, activva los dispositivos virtuale es con que cuenta c el programa, dado o que se tata a de un em mulador no se s tiene acce eso a los pue ertos físicos de la compu utadora, por lo que estoss son simu ulados. Virtual drive, da opciones para administrar la as unidades virtuales v de almacenamie a ento (HDD y FDD virtuales). Help, acttiva la herram mienta de ay yuda. Debajo d de la barra de herramienttas hay una serie de boto ones con las s siguientes funciones: f Load: ca arga un archivo ejecutablle EXE, COM M, etc. ya existente. Reload: reinicia el programa p y comienza c a ejecutar e el mismo m desde la primer instrucción de e código, todos t los reg gistros inicialiizan nuevam mente, Single step: s permitte ejecutar las l instrucciones una a una deteniéndose luego de cada a instrucción. Noviembre e 2010 Introducción al emu8086 8 de 16 Universida ad Nacional de Rosario FCEIA Digital II Step ba ack: retroced de a la últim ma instrucció ón que ya fu ue ejecutada a permitiend do ejecutarla a nuevame ente. Run: pe ermite ejecutar todas lass instruccione es una a un na a la veloccidad establecida por ell control “s step delay”. La ejecución se detiene e al presionarr “STOP”. Vale la p pena hacer notar n que tam mbién es possible, en el menú m “debug””, insertar un “break pointt” cuando se e está dep purando prog grama o ejeccutar el progrrama hasta el e lugar donde se encuen ntra el cursorr (“run until”). Debajo de d la barra de d botones se s observan tres paneless, a la izquierda se puede e ver el esta ado de todoss los regisstros dispon nibles en el 8086. Dura ante la ejecu ución de un n programa, se puede modificar ell contenid do de los mismos. m Ade emás, al haccer doble click c sobre alguno a de lo os registros se abre ell "Extende ed Viewer" que q permite ver el conte enido del reg gistro representando en distintas basses (binario,, hexadeccimal, octal, ASCII, A decim mal, etc.). Figura a 9 – Extend ded Viewer Luego se e pueden ve er dos panele es, el de la izzquierda muestra el código máquina y las direcciones físicass de la me emoria de pro ograma con la codificació ón hexadecim mal, decimall y ASCII de cada byte de e código. En n el panel de la derech ha se pueden n ver las insttrucciones de e assembler pero con las s direccioness y etiquetass eltas por partte del ensam mblador. ya resue En ambos paneles, el código resaltado r en azul muesttra la próxim ma instrucció ón a ser eje ecutada. Porr ue la instrucción a ser ejjecutada es MOV AX, 00 003h, y en el panel de la a ejemplo,, en Figura 8 veremos qu izquierda a que la mism ma insume 3 bytes de có ódigo máquina, el primerro en la direccción física 07100h 0 es ell B8, que coincide co on el código máquina de el 8086 para a la instrucc ción MOV AX X, mientras que los doss bytes sig guientes (dire ecciones 071 101h y 0710 02h) represen ntan el dato de 16 bits “0 0003” a ser transferido all registro AX. A A la izqu uierda, en la ventana del emulador, se s pueden to odos los registros del miccroprocesado or y su valorr actual. L Luego de cada c ejecuta ar instrucció ón aquellos registros qu ue se haya an modificad do se verán n resaltado os en azul. Tener en cu uenta que el e valor de lo os registros se puede modificar m dinámicamente e durante el debug, essto es útil cu uando se neccesita forzarr alguna situa ación particu ular durante la evolución n del programa. arte inferior de d la ventana a del emulad dor se puede en encontrarr varios boto ones de utilid dad, el botón n En la pa Flags pe ermite ver el estado de lo os Flag, el botón b Aux pe ermite, por ejemplo, e ver el mapa de memoria, ell botón stcck muestra el e estado de la pila. Noviembre e 2010 Introducción al emu8086 9 de 16 Universida ad Nacional de Rosario FCEIA Digital II Figura 10 – Flags y ma apa de memo oria Junto co on la ventana a principal de el emulador (Figura 8 – Emulador) se abre una ventana v com mplementaria a que mue estra el códig go fuente: Figura 11 – Emulador,, código fuen nte Durante el proceso o de debug g (depuració ón) se podrrá ver enton nces, el có ódigo fuente e, el código o amblado (código fuente con direccciones/etique etas resultas s) y finalme ente el códig go máquina a desensa resultantte de cada in nstrucción. 4.1 M Mapa de memoria m Como ssabemos, el 8086 cuenta con un bus b de direcciones de 20 bits, esto permite por p lo tanto o direccion nar un mapa de memoria a de 1 Mbyte e. El emu8 8086 trae por p defecto un mapa de memoria predefinido equivalente e al que existe en una a arquitecttura de PC IBM compatible, al cual el e emu8086 llama “Goba al Memory Ta able”. Si bien n este mapa a predefinido facilita el e rápido uso o y aprendiza aje del emu8 8086, en la cátedra de Digital D II no utilizaremoss ealización de e los trabajo os prácticos ya y que el alu umno deberá á definir su p propio mapa a este mapa para la re oria. de memo 4.1.1 Custom Memory M Map p La posib bilidad de de efinir mapas de memoria a a medida se s conoce co omo “Custom m Memory M Map”, y para a esto se debe crear un u archivo en el directorio raíz del emu8086 llam mado custom m_memory_ _map.inf (ej.. c:\emu80 086\custom_ _memory_ma ap.inf) que especifique e c como estará á conformado o el mapa. Por P ejemplo,, este arch hivo podría estar e definido o de la siguie ente forma: NO_SYS_INFO 0000:0000 - IVT.bin ffff:0000 - Arranque.bin Figura 12 2 – Custom M Memory Map p Esta deffinición del mapa m de mem moria se extrrajo del problema resueltto de ejemplo o que la cáte edra entrega a para utilizarlo como guía en la resolución de d los proble emas del Tra abajo Prácticco N°2. Una a explicación n Noviembre e 2010 Introducción al emu8086 10 de 16 Universida ad Nacional de Rosario FCEIA Digital II más deta allada se po odrá encontra ar en este ejjemplo, pero o básicamentte este archiivo le indica al emu8086 6 como de ebe conforma ar el mapa de memoria. En este caso o, en la primera posición del mapa se e encontrará á la IVT, e es decir, los punteros (IP P y CS) a ca ada una de la as subrutinas de atenció ón de interrupciones (verr sección Interrupcion nes). Ademá ás a partir de la direccción física FFFF0h (o lógica FFF FF:0000) se e encontra . Como se puede ará el código o correspond diente con Arranque.bin A p ver, se s utilizan archivos .bin,, que es e el resultado de d la compila ación de arch hivos de código fuente. 4.1.2 Interrupcio ones Una de las posibilid dades que ofrece o el em mu8086 a diferencia d de el MASM 6.11 es la sim mulación de e l mecanismos de los cuales dispone el 8086 6 para comu unicarse con n interrupcciones, que es uno de los dispositivvos externoss. Las interrrupciones alteran la ejeccución del prrograma en respuesta r a eventos e exte ernos o una ccondición de e error. La as interrupcio ones permite en manejar eventos extternos, prove enientes de dispositivos externos all micro, ta ambién perm miten resolvver situacion nes de errorr al ejecutarr una determinada instrucción, porr ejemplo,, la presencia de una divvisión por ce ero dispara automáticam a mente una interrupción T Tipo 0. Estass últimas ssituaciones son s ejemplo os de interrupciones por hardware y por softwarre, pero amb bos tipos de e interrupcciones son manejadas m de e la misma fo orma por el m microprocesa ador. El microprocesador recibe r las intterrupciones por hardwarre a través de d líneas o pines particula ares propiass para estte fin presentes en la pa astilla del mic croprocesador, mientras que las inte errupciones por p software e son cau usadas por la l ejecución de la instrrucción “INT T n”, donde n es el tipo o de interru upción a serr ejecutad da. El tipo de interrupción n puede ser cualquier c núm mero entre 0 y 255. Cuando se produce e una interru upción, el microprocesa m dor detiene la ejecución n del código o que venía a procesan ndo y proce ede a ejecu utar una po orción de có ódigo indep pendiente associado con el tipo de e interrupcción, pero pa ara esto, el micro m debe primero conoccer dentro de e la memoria a de program ma dónde se e encuentrra ubicada esta porción de código o. Antes de e poder ejeccutar la sub brutina asocciada a una a interrupcción específiica debe ob btener el CS S e IP donde e se encuen ntra la mism ma. Esta info ormación se e encuentrra en lugar específico e del espacio de d memoria y se conoce e como IVT (Interrupt Ve ector Table).. Dado qu ue los tipos de d interrupciiones van de e 0 a 255, e esta tabla cuenta con 256 posicioness, y en cada a una de e ellas de encu uentran dos valores v CS e IP de 16 bitts cada uno. 4.1.2.1 Interrupt Vector V Table e a al principio del espacio o de memoria a y los prime eros cuatro bytes b conten ndrán el IP y La IVT sse encuentra CS de la a subrutina asociada a a la a interrupción Tipo 0, lue ego el offset 04h y 06h contendrán c e IP y el CS el S asociado os al código de la interrup pción Tipo 1, ver Figura 13. Figura 13 – Interrupt Ve ector Table (IIVT) Noviembre e 2010 Introducción al emu8086 11 de 16 Universida ad Nacional de Rosario FCEIA Digital II Suponga amos que se e ejecuta la interrupción por p software e tipo 5 (INT 5), el microp procesador procederá p se e la siguiente forma pa ara obtener el e IP y CS as sociado con esa e interrupcción, multiplicca el tipo de interrupción n por cuatro, 4 x 5 = 20 (14h), este e resultado será s la direccción física en n la cual se encuentra e el IP (00014h)) y dos po osiciones más arriba el CS C (00016h). El progrramador deb be crear y d definir los va alores de la a IVT de forrma que antte la existen ncia de una a interrupcción el flujo de d programa no se vea afectado. Dado qu ue en la realizzación del se egundo traba ajo práctico se s utilizarán interrupcione es será nece esario que ell alumno ccree y defina a la IVT. 4.1.2.2 Interrupció ón por hard dware p hardware e son generradas por pe eriféricos exxternos, micrrocontroladores o por ell Las interrupciones por coprocessador matem mático 8087. Las interrrupciones por p hardware e se encuenttran deshabiilitadas cuan ndo el Flag de d Interrupcio ones (IF) se e encuentrra en 0. Cua ando el IF esstá en 1, el emu8086 ve erifica continuamente loss primeros 25 56 bytes dell archivo “emu8086.hw”, si algun no de los byytes leídos e es distinto de d cero, porr ejemplo el byte 15, ell ocesador transfiere el co ontrol a la su ubrutina de atención a de la interrupciión tipo 15 en e base a lo o micropro configura ado en la IVT T. Por deffecto, la in nterrupcioness por hard dware se encuentran e habilitadas, pero se deshabilitan n automáticamente cuando se está á ejecutando o una interrup pción de hard dware o software. dware el emulador lo indica mediante e una leyend da en la para a Cuando se produce una interrupcción por hard na del mismo o. superior de la ventan Figurra 14 – Emullador – Interrrupción por Hardware H gura 14 se pu uede ver un ejemplo de interrupción i por hardware tipo 15. En la Fig En el ca aso de las interrupcion nes por softw ware el emulador no re ealiza ningu una adverten ncia ante la a aparición n de la mism ma. 4.1.3 Puertos P de e entrada/ssalida El emu8 8086 permite e utilizar el e espacio de E/S E y emula ar la comunic cación con los dispositivvos virtualess mediante e las instruc cciones in y out. Para esto, e el emu8 8086 utiliza el archivo emu8086.io e c como medio o común p para la comu unicación con n los dispositivos virtuale es, tanto él como c los disp positivos leen y escriben n en este archivo, as sí por ejemplo el puertto 100 de E/S E corresponde con el e byte 100 del archivo o emu8086 6.io. Los puertos utilizado os por los disspositivos virtuales utilizzados en la cátedra c se encuentran descriptos en n la docum mentación de e ayuda disp ponible al ha acer click en n el botón “A Ayuda” que se s ve en la Figura 15 – Dispositiivos Virtuales s – Digital II.. Noviembre e 2010 Introducción al emu8086 12 de 16 Universida ad Nacional de Rosario FCEIA Digital II 4.2 D Dispositiv vos Virtua ales (DVIO O) El emu8 8086 cuenta a con 7 disp positivos virttuales accessibles desde e el menú de d herramientas “virtuall devices”” que se encuentran map peados en ell espacio de entrada/salida y pueden n utilizar en conjunto c con n el emula ador del 8086 6. Estos disspositivos pe ermiten simu ular la comun nicación entrre el micro 8086 8 y dispositivos extern nos a travéss de las in nstrucciones IN y OUT y de interrupciiones por ha ardware. La comunicación c n entre los dispositivos y el emu80 086 se realizza a través de los archivo os emu8086..io y emu808 86.hw. 4.2.1 DVIO D Digittal II Adiciona almente a loss dispositivoss nativos del emu8086, la cátedra de Digital II desarrolló 10 dispositivoss adiciona ales que son los utilizado os en el Trabajo Práctico o N°2. Estoss nuevos dis spositivos se e encuentran n disponib bles luego de e su instalacción según se s indica en el punto 2.2 2 Dispositivo os Virtuales de Digital II.. Luego de e iniciar los dispositivos d v virtuales se muestra m la siguiente venttana: Fiigura 15 – Dispositivos Virtuales V – Diigital II Al hacerr click en cad da uno de loss botones se e puede iniciiar el disposiitivo y este estará e en con ndiciones de e interactu uar con el em mu8086. En la ventana de la Figura 15 se e puede ver una barra de e desplazam miento “Speed d” que permite modificarr oral de com mportamiento o de aquellos dispositivos donde la variable tiempo ess la veloccidad tempo importan nte, por ejem mplo en loss Timers permite modificar la veloccidad de cue enta o en el e tanque la a velocidad de llenado o o vaciado del d mismo. os dispositivo os genera un pedido de interrupción n hacia el em mu8086 se puede p ver en n Cuando alguno de lo a la leyenda a “Atención. Hay interrrupciones pe endientes” y el tipo de e la parte inferior de la ventana n lo mostrado o en el emula ador (ver Fig gura 14) interrupcción “INT:15””, esto debe coincidir con 4.2.2 Document D tación de lo os Disposiitivos Virtua ales Al instalar los dispo ositivos virtuales (ver se ección 2.2) sse crea una a carpeta qu ue contiene una archivo o 8086\DVIO\d docs\help.pdf) de ayuda con la descrripción y form ma de utiliza ación de cada a uno de loss (…\emu8 dispositivvos virtuales s. Adicionalm mente, esta misma m inform mación se encuentra disp ponible en forrmato http all hacer cliick en el botó ón “Ayuda” que q se observa en la ven ntana de la Figura F 15. Te ener en cuen nta que esta a documen ntación será muy útil al momento m de resolver el problema p del trabajo prácctico N°2. Noviembre e 2010 Introducción al emu8086 13 de 16 Universida ad Nacional de Rosario FCEIA Digital II F Figura 16 – Ayuda Dispo ositivos Virtu uales 4.2.3 Ejemplo E – Problema Resuelto Al igual que la docu umentación sobre s el uso o de los disp positivos virtu uales, luego de la instala ación de loss ará a disposiición un prob blema de eje emplo resuellto y con exp plicaciones paso p a paso.. mismos, se encontra aterial podrá resultar de mucha m utilida ad al momen nto de entender cómo se e utilizan los dispositivoss Este ma virtualess y para utilizzarlo como guía g al mom mento de la resolución r de el problema del TP2. Los archivos y documen ntación se po odrán encon ntrar en los siguientes dire ectorios: …\emu8 8086\DVIO\do ocs\EjemploResuelto.pdff …\emu8 8086\DVIO\ejjemplo\ejemplo_resuelto\ 4.2.4 Ejemplo E – Dispositivvos Tanque e y Pulsado ores A contin nuación se muestra m un ejemplo típiico de los componentes c s utilizados en la resolu ución de loss problema as del trabajjo práctico de d assembler. En la capttura de pantalla de la Fig igura 17 se puede p ver la a ventana principal del emu8086 donde d se pue ede crear y editar e el códig go funte de asembler, a se e ve también n ana del emulador y código fuente, la ventana de d selección n de los dispositivos virrtuales y loss la venta dispositivvos virtualess propiamentte dichos (tan nque y pulsa adores en estte caso). Noviembre e 2010 Introducción al emu8086 14 de 16 Universida ad Nacional de Rosario FCEIA Digital II Editor de e texto Dispositivo vvirtual Tanquee Emulador Disp positivo Virtual P Pulsadores Códiggo fuente Veentana de sele ección de Dispositivvo Figura 17 1 – Ejemplo o de dispositiivos virtuales s y emuladorr 4.3 D Documenttación em mu8086 El emu8086 cuenta con c gran can ntidad de doc cumentación n que se pue ede acceder desde “help”” en el menú ú de herra amientas en la ventana principal del entorno (Fiigura 5 – Ve entana princiipal emu808 86). Al hacerr click en help Æ docu umentation and tutorial se e abre el navvegador y mu uestra la sigu uiente pantalla: Figu ura 18 – Docu umentación y tutoriales emu8086 e Noviembre e 2010 Introducción al emu8086 15 de 16 Universidad Nacional de Rosario FCEIA Digital II 4.3.1 Set de instrucciones 8086 Como parte de la documentación del entorno se encuentra el set de instrucciones del 8086, como se puede ver en la Figura 18, en la parte superior de la página el link “8086 Instruction Set” permite ver la totalidad de instrucciones soportadas por el entorno y la descripción y ejemplo de uso de la mismas. Adicionalmente en el apunte de “Microprocesadores y Microcontroladores” o la “Guía de Referencia Rápida del 80186” se encuentra el set de instrucciones completo y la descripción y función de cada instrucción. Noviembre 2010 Introducción al emu8086 16 de 16