You are on page 1of 16

Di igital l II Introd duccin al a ento orno emu8086 6

Departam mento de e Sistema as e Informtica Escuela a de Elect trnica F Facultad de d Cs. Ex xactas, In ngeniera y Agrime ensura U Universid dad Nacio onal de R Rosario

Ing. Andr s Capalbo o Ing. Diego Alegrechi i ban Almirn n Ing. Esteb

Nov viembre 2010 0

Universidad Nacional de Rosario

FCEIA

Digital II

Tabla de contenidos
1 2 Introduccin .................................................................................................................... 3 Instalacin 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

Utilizacin 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 Documentacin de los Dispositivos Virtuales ................................................................. 13 4.2.3 Ejemplo Problema Resuelto ........................................................................................ 14 4.2.4 Ejemplo Dispositivos Tanque y Pulsadores ................................................................. 14 4.3 Documentacin emu8086 ...................................................................................................... 15 4.3.1 Set de instrucciones 8086 .............................................................................................. 16

Tabla de Figuras
Figura 1 Instalacin DVIO ....................................................................................................................... 4 Figura 2 Archivo de configuracin dvio.ini............................................................................................... 5 Figura 3 Ventana de inicio del emu8086 ................................................................................................. 5 Figura 4 Eleccin del tipo de template .................................................................................................... 6 Figura 5 Ventana principal emu8086 ...................................................................................................... 7 Figura 6 Editor de cdigo fuente ............................................................................................................. 7 Figura 7 Cdigo fuente durante la emulacin ......................................................................................... 7 Figura 8 Emulador .................................................................................................................................. 8 Figura 9 Extended Viewer....................................................................................................................... 9 Figura 10 Flags y mapa de memoria .................................................................................................... 10 Figura 11 Emulador, cdigo fuente ....................................................................................................... 10 Figura 12 Custom Memory Map............................................................................................................ 10 Figura 13 Interrupt Vector Table (IVT) .................................................................................................. 11 Figura 14 Emulador Interrupcin 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 Documentacin y tutoriales emu8086 ................................................................................... 15

Noviembre 2010

Introduccin al emu8086

2 de 16

Universidad Nacional de Rosario

FCEIA

Digital II

1 Introduccin
Hasta el ao 2009 en la ctedra de Digital II hemos utilizado la herramienta MASM 6.11 para la realizacin del segundo trabajo prctico de assembler. A partir del ao 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 programacin en assembler utilizado anteriormente en la ctedra (MASM), este entorno corre sobre Windows y cuenta con una interfaz grfica muy amigable e intuitiva que facilita el aprendizaje el leguaje de programacin 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 comunicacin 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 semforos, un termmetro, un motor paso a paso, etc. No obstante, la ctedra ha desarrollado dispositivos adicionales con caractersticas particulares para la realizacin del segundo trabajo prctico. Se muestra a continuacin una tabla comparativa con las diferencias entre el entorno de programacin en assembler utilizado anteriormente en la ctedra (MASM 6.11) y el nuevo emu8086:
Emu 8086 Entorno educativo Basado en Windows En forma virtuales. nativa admite dispositivos Microsoft Assembler (MASM 6.11) Entorno para produccin y educativo. Basado en DOS No admite dispositivos virtuales en forma nativa Set de instrucciones del 8086, 80186/286/386/486 Directivas comunes con TASAM (Borland Turbo Assembler) No permite emular interrupciones No permite emular el espacio de E/S No permite emular intrrupciones.

Set de instrucciones de 8086 Directivas propias adicionales Emula interrupciones por Hw y Sw Emula el espacio de E/S (instrucciones IN y OUT) Permite emular interrupciones. Herramientas adicionales para el debug

2 Instalacin del entorno


En la ctedra de Digital 2 utilizaremos el emu8086 pero de manera combinada con dispositivos virtuales desarrollados por la ctedra. Por esta razn ser necesario descargar de la pgina de la ctedra e instalar dos programas.

2.1 Emu8086
En primer lugar descargar el archivo instalador del emu8086 de la pgina web de la ctedra 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 instalacin teniendo en cuenta los comentarios siguientes.

2.1.1 Windows XP
Para la instalacin en Windows XP no es necesario tener cuenta ninguna consideracin en particular, slo basta con seguir los pasos indicados por el instalador y aceptar las configuraciones por defecto propuestas por el emu8086.

Noviembre 2010

Introduccin al emu8086

3 de 16

Universida ad Nacional de Rosario

FCEIA

Digital II

El direct torio de insta alacin por defecto d es C:\emu8086. C Adicionalme ente, los siguientes dos archivos se e instalan en la raz 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 raz z del disco o C. Para ev vitar esta situ uacin, en el momento de la instalacin del emu8 8086 se deb be elegir otra a ubicacin para la instalacin de el programa, por ejemplo o otra partic cin (D\:) o el e directorio Archivos de e ma1. Program Al haber r elegido otro o sitio de ins stalacin dis stinto al prop puesto por defecto, es necesario mo odificar en el l 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 al l emu8086 la a nueva ubic cacin de est tos archivos.

2.2 D Dispositiv vos Virtua ales de Di igital II


Adiciona almente a los s dispositivos s nativos del emu8086, la ctedra de Digital II desarroll 10 dispositivos s adiciona ales que son los utilizado os en el Tra abajo Prctic co N2. Para a poder utiliz zar estos dis spositivos se e debe des scargar de la a pgina de la l ctedra e instalar el siguiente arch hivo: http://ww ww.dsi.fceia.u unr.edu.ar/do ownloads/dig gital_II/Digi2I IO_Setup.zip p

Instalar l los DVIO (Di ispositivos Virtuales V de Entrada/Salid E da) en el mis smo directorio en el cual se instal el l emu8086 6, ver por eje emplo Figura a 1.

Figura a 1 Instalac cin DVIO Luego de finalizado el proceso de d instalacin n se debe ed ditar el archi ivo dvio.ini y modificar el l path con la a ubicacin correcta de e los archivo os emu8086.io y emu808 86.hw.

Por defec cto Windows Vista/7 no permite en modificar arc chivos ubicados s directorio Arch hivo de Program mas (o Program Files), por esta a razn para a poder editar el e archivo emu8086.ini luego de e la instalacin se debe previa amente modifica ar de manera te emporal el nivel l de segurid dad y proteccin 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 desplaz zamiento al nive el de seguridad d ms bajo ( (Never notify) y aceptar. Editar ahora el archiv vo emu8086.in, luego de esto re estaurar el nivel de seguridad al a que tena por r defecto.

Noviembre e 2010

Introduccin al emu8086

4 de 16

Universida ad Nacional de Rosario

FCEIA

Digital II

Fi igura 2 Arc rchivo de con nfiguracin dvio.ini

3 Utilizacin n del ento orno


Para inic ciar el entor rno 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

Introduccin al emu8086

5 de 16

Universida ad Nacional de Rosario

FCEIA

Digital II

New: pe ermite escrib bir un nuevo o cdigo en n lenguaje ensamblado e r (Cdigo F Fuente con n extensin .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 acin en assembler. Quick start s tutor: llama l al bro owser y perm mite explorar gran varie edad de doc cumentos de e ayuda. Recent file f : muestra a los ltimos archivos con n los cuales se s estuvo tra abajando.

En el cas so de hacer click en New w, el entorno ofrece traba ajar con difer rentes plantillas o templates:

E del tipo de temp plate Figura 4 Eleccin COM tem mplate (direc ctiva #make_ _com#): es el formato ms m simple y antiguo de e un archivo o ejecutab ble, tpicamen nte estos arc chivos se car rgan con un offset de 10 00h (256 byte es). Por esta a razn se e debe agre egar la dire ectiva ORG 100h al co omienzo del cdigo par ra indicar la a utilizaci n de este tipo t de arch hivos. Forma ato soportad do por DOS S y Windows s Command d Prompt. EXE tem mplate (direc ctiva #make_exe#): este e es el form mato ms avanzado de e un archivo o ejecutab ble. No tiene limitaciones s en cuanto al tamao del d archivo y nmero de segmentos. . Este tem mplate permit te crear un programa p ex xe simple co on los segme entos de cd digo, datos y pila pred definidos. Es ste tipo de archivo a est soportado por p Windows s y Windows s Command d Prompt. El ensamb blador elige automticam mente este tipo de arc chivo 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 valor r de todos s los registro os, segmento os y el lugar de memoria a donde se cargar a est te programa. . Cuando por ejemplo o el ensamblador carga el archivo "MY.BIN" en el emulador buscar el l e "MY.BIN" en la ubic cacin espe ecificada en n archovo "MY.BINF" y cargar al archive "MY.BIN NF", al igual que el valor r 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 ac ctual de los s registros s al momento o de la ejec cucin 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 ut tiliza valores s predefini idos para ub bicar el cdig go y que coin nciden con el primer track k de un flopp py disk (boot t sector). La nica diferencia con la directiv va #make_b bin# es que carga el cdigo 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 direccin desde el floppy disk.

En Digita al II utilizarem mos para la resolucin del trabajo pr rctico un tem mplate modif ficado y no tr rabajaremos s 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 opcin em mpty workspa ace. Luego de esto tendre emos acceso o a la ventan na principal del d emulador r que cuenta a con una ba arra de men dit, bookmark ks, assemble er, etc.) y var rios botones de uso frecuente como New, Open, , de Windows (file, ed

Noviembre e 2010

Introduccin 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 el l cdigo fu uente de ass sembler.

Figura 5 Ventana prin ncipal emu80 086 Para ver r rpidament te las princip pales funcion nes del emu8086 proced demos a abr rir uno de los s programas s de ejemp plo, el C:\em mu8086\exam mples\1_sam mple.asm o Hello, world si optamos por seleccio onarlo desde e el botn rpido exam mples.

Figura 6 Editor de cdigo c fuente e al presionar el e botn Em mulate se ab brirn 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 cdigo fuente durante la emula acin (Figura a 7 Cdigo o fuente durante la em mulacin).

Fig gura 7 Cd digo fuente du urante la em mulacin

Noviembre e 2010

Introduccin al emu8086

7 de 16

Universida ad Nacional de Rosario

FCEIA

Digital II

4 El Emulado or
Luego de cargar el cdigo c en el emulador al l hacer click en el en Em mulate variedad d de funcione es e informac cin: , se s tendr ac cceso a gran n

Direcciones Cd digo cas Fsic Mquin na (HEX)

C Cdigo Mquina a Cdigo (ASCII) Mq quina (DEC)

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 adminis strar (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 conv vertidor en ba asas de num meracin. Debug, provee p herra amientas para a depurar pr rogramas. View, pe ermite abrir otras ventanas que pue eden ser de e mucha ayu uda al ejecu utar depurar r programas. External, permite eje ecutar el prog grama con ot tras herramie entas diferen ntes del EMU U8086. Virtual de evices, activ va 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 fsicos de la compu utadora, por lo que estos s son simu ulados. Virtual drive, da opciones para administrar la as unidades virtuales v de almacenamie a ento (HDD y FDD virtuales). Help, act tiva la herram mienta de ay yuda.

Debajo d de la barra de herramient tas hay una serie de boto ones con las s siguientes funciones: f Load: ca arga un archivo ejecutabl le EXE, COM M, etc. ya existente. Reload: reinicia el programa p y comienza c a ejecutar e el mismo m desde la primer instruccin de e cdigo, todos t los reg gistros iniciali izan nuevam mente, Single step s : permit te ejecutar las l instrucciones una a una detenindose luego de cada a instruccin.

Noviembre e 2010

Introduccin 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 las s instruccione es una a un na a la veloc cidad establecida por el l control step s delay. La ejecucin se detiene e al presionar r STOP.

Vale la p pena hacer notar n que tam mbin es pos sible, en el men m debug , insertar un break point t cuando se e est dep purando prog grama o ejec cutar el progr rama hasta el e lugar donde se encuen ntra el cursor r (run until). Debajo de d la barra de d botones se s observan tres paneles s, a la izquierda se puede e ver el esta ado de todos s los regis stros dispon nibles en el 8086. Dura ante la ejecu ucin de un n programa, se puede modificar el l contenid do de los mismos. m Ade ems, al hac cer doble click c sobre alguno a de lo os registros se abre el l "Extende ed Viewer" que q permite ver el conte enido del reg gistro representando en distintas bas ses (binario, , hexadec cimal, octal, ASCII, A decim mal, etc.).

Figura a 9 Extend ded Viewer Luego se e pueden ve er dos panele es, el de la iz zquierda muestra el cdigo mquina y las direcciones fsicas s de la me emoria de pro ograma con la codificaci n hexadecim mal, decimal l y ASCII de cada byte de e cdigo. En n el panel de la derech ha se pueden n ver las inst trucciones de e assembler pero con las s direcciones s y etiquetas s eltas por part te del ensam mblador. ya resue En ambos paneles, el cdigo resaltado r en azul muest tra la prxim ma instrucci n a ser eje ecutada. Por r , en Figura 8 veremos qu ue la instruccin a ser ej jecutada es MOV AX, 00 003h, y en el panel de la a ejemplo, izquierda a que la mism ma insume 3 bytes de c digo mquina, el primer ro en la direc ccin fsica 07100h 0 es el l B8, que coincide co on el cdigo mquina de el 8086 para a la instrucc cin MOV AX X, mientras que los dos s bytes sig guientes (dire ecciones 071 101h y 0710 02h) represen ntan el dato de 16 bits 0 0003 a ser transferido al l registro AX. A A la izqu uierda, en la ventana del emulador, se s pueden to odos los registros del mic croprocesado or y su valor r actual. L Luego de cada c ejecuta ar instrucci n aquellos registros qu ue se haya an modificad do se vern n resaltado os en azul. Tener en cu uenta que el e valor de lo os registros se puede modificar m dinmicamente e durante el debug, es sto es til cu uando se nec cesita forzar r alguna situa acin particu ular durante la evolucin n del programa. arte inferior de d la ventana a del emulad dor se puede en encontrar r varios boto ones de utilid dad, el botn n En la pa Flags pe ermite ver el estado de lo os Flag, el botn b Aux pe ermite, por ejemplo, e ver el mapa de memoria, el l botn stc ck muestra el e estado de la pila.

Noviembre e 2010

Introduccin 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 cdig go fuente:

Figura 11 Emulador, , cdigo fuen nte Durante el proceso o de debug g (depuraci n) se podr r ver enton nces, el c digo fuente e, el cdigo o amblado (cdigo fuente con direcc ciones/etique etas resultas s) y finalme ente el cdig go mquina a desensa resultant te de cada in nstruccin.

4.1 M Mapa de memoria m


Como s sabemos, 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 arquitect tura 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 rpido uso o y aprendiza aje del emu8 8086, en la ctedra de Digital D II no utilizaremos s ealizacin de e los trabajo os prcticos 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 raz 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 podra 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 def finicin del mapa m de mem moria se extr rajo del problema resuelt to de ejemplo o que la cte edra entrega a para utilizarlo como gua en la resolucin de d los proble emas del Tra abajo Prctic co N2. Una a explicacin n

Noviembre e 2010

Introduccin al emu8086

10 de 16

Universida ad Nacional de Rosario

FCEIA

Digital II

ms deta allada se po odr encontra ar en este ej jemplo, pero o bsicament te este archi ivo le indica al emu8086 6 como de ebe conforma ar el mapa de memoria. En este caso o, en la primera posicin 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 (ver r seccin Interrupcion nes). Adem s a partir de la direc ccin fsica FFFF0h (o lgica FFF FF:0000) se e encontra . Como se puede ar el cdigo o correspond diente con Arranque.bin A p ver, se s utilizan archivos .bin, , que es e el resultado de d la compila acin de arch hivos de cdigo 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 mulacin de e ciones, que es uno de los l mecanismos de los cuales dispone el 8086 6 para comu unicarse con n interrupc dispositiv vos externos s. Las inter rrupciones alteran la ejec cucin del pr rograma en respuesta r a eventos e exte ernos o una c condicin de e error. La as interrupcio ones permite en manejar eventos ext ternos, prove enientes de dispositivos externos al l micro, ta ambin perm miten resolv ver situacion nes de error r al ejecutar r una determinada instruccin, por r ejemplo, , la presencia de una div visin por ce ero dispara automticam a mente una interrupcin T Tipo 0. Estas s ltimas s situaciones son s ejemplo os de interrupciones por hardware y por softwar re, pero amb bos tipos de e interrupc ciones son manejadas m de e la misma fo orma por el m microprocesa ador. El microprocesador recibe r las int terrupciones por hardwar re a travs de d lneas o pines particula ares propias s para est te fin presentes en la pa astilla del mic croprocesador, mientras que las inte errupciones por p software e son cau usadas por la l ejecucin de la instr ruccin INT T n, donde n es el tipo o de interru upcin a ser r ejecutad da. El tipo de interrupcin n puede ser cualquier c nm mero entre 0 y 255. Cuando se produce e una interru upcin, el microprocesa m dor detiene la ejecucin n del cdigo o que vena a procesan ndo y proce ede a ejecu utar una po orcin de c digo indep pendiente as sociado con el tipo de e interrupc cin, pero pa ara esto, el micro m debe primero conoc cer dentro de e la memoria a de program ma dnde se e encuentr ra ubicada esta porcin de cdigo o. Antes de e poder ejec cutar la sub brutina asoc ciada a una a interrupc cin especfi ica debe ob btener el CS S e IP donde e se encuen ntra la mism ma. Esta info ormacin se e encuentr ra en lugar especfico e del espacio de d memoria y se conoce e como IVT (Interrupt Ve ector Table). . Dado qu ue los tipos de d interrupci iones van de e 0 a 255, e esta tabla cuenta con 256 posiciones s, y en cada a una de e ellas de encu uentran dos valores v CS e IP de 16 bit ts cada uno. 4.1.2.1 Interrupt Vector V Table e se encuentra a al principio del espacio o de memoria a y los prime eros cuatro bytes b conten ndrn el IP y La IVT s CS de la a subrutina asociada a a la a interrupcin Tipo 0, lue ego el offset 04h y 06h contendrn c e IP y el CS el S asociado os al cdigo de la interrup pcin Tipo 1, ver Figura 13.

Figura 13 Interrupt Ve ector Table (I IVT)

Noviembre e 2010

Introduccin al emu8086

11 de 16

Universida ad Nacional de Rosario

FCEIA

Digital II

Suponga amos que se e ejecuta la interrupcin 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 interrupc cin, multiplic ca el tipo de interrupcin n por cuatro, 4 x 5 = 20 (14h), este e resultado ser s la direcc cin fsica en n la cual se encuentra e el IP (00014h) ) y dos po osiciones ms arriba el CS C (00016h). El progr ramador deb be crear y d definir los va alores de la a IVT de for rma que ant te la existen ncia de una a interrupc cin el flujo de d programa no se vea afectado. Dado qu ue en la realiz zacin del se egundo traba ajo prctico se s utilizarn interrupcione es ser nece esario que el l alumno c cree y defina a la IVT. 4.1.2.2 Interrupci n por hard dware p hardware e son gener radas por pe erifricos ex xternos, micr rocontroladores o por el l Las interrupciones por coproces sador matem mtico 8087. Las inter rrupciones por p hardware e se encuent tran deshabi ilitadas cuan ndo el Flag de d Interrupcio ones (IF) se e encuentr ra en 0. Cua ando el IF es st en 1, el emu8086 ve erifica continuamente los s primeros 25 56 bytes del l archivo emu8086.hw, si algun no de los by ytes ledos e es distinto de d cero, por r ejemplo el byte 15, el l ocesador transfiere el co ontrol a la su ubrutina de atencin a de la interrupci in tipo 15 en e base a lo o micropro configura ado en la IVT T. Por def fecto, la in nterrupciones s por hard dware se encuentran e habilitadas, pero se deshabilitan n automticamente cuando se est ejecutando o una interrup pcin de hard dware o software. cin por hard dware el emulador lo indica mediante e una leyend da en la para a Cuando se produce una interrupc na del mismo o. superior de la ventan

Figur ra 14 Emul lador Interr rupcin por Hardware H gura 14 se pu uede ver un ejemplo de interrupcin 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 aparicin n de la mism ma.

4.1.3 Puertos P de e entrada/s salida


El emu8 8086 permite e utilizar el e espacio de E/S E y emula ar la comunic cacin con los dispositiv vos virtuales s mediante e las instruc cciones in y out. Para esto, e el emu8 8086 utiliza el archivo emu8086.io e c como medio o comn p para la comu unicacin 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 puert to 100 de E/S E corresponde con el e byte 100 del archivo o emu8086 6.io. Los puertos utilizado os por los dis spositivos virtuales utiliz zados en la ctedra c se encuentran descriptos en n la docum mentacin de e ayuda disp ponible al ha acer click en n el botn A Ayuda que se s ve en la Figura 15 Dispositi ivos Virtuales s Digital II.

Noviembre e 2010

Introduccin 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 virt tuales acces sibles desde e el men de d herramientas virtual l devices que se encuentran map peados en el l espacio de entrada/salida y pueden n utilizar en conjunto c con n el emula ador del 8086 6. Estos dis spositivos pe ermiten simu ular la comun nicacin entr re el micro 8086 8 y dispositivos extern nos a travs s de las in nstrucciones IN y OUT y de interrupci iones por ha ardware. La comunicacin c n entre los dispositivos y el emu80 086 se realiz za a travs de los archivo os emu8086. .io y emu808 86.hw.

4.2.1 DVIO D Digit tal II


Adiciona almente a los s dispositivos s nativos del emu8086, la ctedra de Digital II desarroll 10 dispositivos s adiciona ales que son los utilizado os en el Trabajo Prctico o N2. Estos s nuevos dis spositivos se e encuentran n disponib bles luego de e su instalac cin segn 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 vent tana:

Fi igura 15 Dispositivos Virtuales V Di igital II Al hacer r click en cad da uno de los s botones se e puede inici iar el disposi itivo 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 modificar r cidad tempo oral de com mportamiento o de aquellos dispositivos donde la variable tiempo es s la veloc importan nte, por ejem mplo en los s Timers permite modificar la veloc cidad 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 interrupcin n hacia el em mu8086 se puede p ver en n Cuando alguno de lo a la leyenda a Atencin. Hay interr rupciones pe endientes y el tipo de e la parte inferior de la ventana cin INT:15, esto debe coincidir con n lo mostrado o en el emula ador (ver Fig gura 14) interrupc

4.2.2 Document D tacin de lo os Disposi itivos Virtua ales


Al instalar los dispo ositivos virtuales (ver se eccin 2.2) s se crea una a carpeta qu ue contiene una archivo o 8086\DVIO\d docs\help.pdf) de ayuda con la descr ripcin y form ma de utiliza acin de cada a uno de los s (\emu8 dispositiv vos virtuales s. Adicionalm mente, esta misma m inform macin se encuentra disp ponible en for rmato http al l hacer cli ick 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 ntacin ser muy til al momento m de resolver el problema p del trabajo prc ctico N2.

Noviembre e 2010

Introduccin 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 umentacin sobre s el uso o de los disp positivos virtu uales, luego de la instala acin de los s ar a disposi icin un prob blema de eje emplo resuel lto y con exp plicaciones paso p a paso. . mismos, se encontra aterial podr resultar de mucha m utilida ad al momen nto de entender cmo se e utilizan los dispositivos s Este ma virtuales s y para utiliz zarlo como gua g al mom mento de la resolucin r de el problema del TP2. Los archivos y documen ntacin se po odrn encon ntrar en los siguientes dire ectorios: \emu8 8086\DVIO\do ocs\EjemploResuelto.pdf f \emu8 8086\DVIO\ej jemplo\ejemplo_resuelto\

4.2.4 Ejemplo E Dispositiv vos Tanque e y Pulsado ores


A contin nuacin se muestra m un ejemplo tpi ico de los componentes c s utilizados en la resolu ucin de los s problema as del trabaj jo prctico de d assembler. En la capt tura 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 cdig go funte de asembler, a se e ve tambin n ana del emulador y cdigo fuente, la ventana de d seleccin n de los dispositivos vir rtuales y los s la venta dispositiv vos virtuales s propiament te dichos (tan nque y pulsa adores en est te caso).

Noviembre e 2010

Introduccin al emu8086

14 de 16

Universida ad Nacional de Rosario

FCEIA

Digital II

Editorde etexto Emulador

Dispositivovirtual v Tanque e

Disp positivo VirtualPulsadores P

Cdig gofuente

Ve entanadesele eccin deDispositiv vo

Figura 17 1 Ejemplo o de dispositi ivos virtuales s y emulador r

4.3 D Document tacin em mu8086


El emu8086 cuenta con c gran can ntidad de doc cumentacin n que se pue ede acceder desde help en el men de herra amientas en la ventana principal del entorno (Fi igura 5 Ve entana princi ipal emu808 86). Al hacer r click en help docu umentation and tutorial se e abre el nav vegador y mu uestra la sigu uiente pantalla:

Figu ura 18 Docu umentacin y tutoriales emu8086 e

Noviembre e 2010

Introduccin al emu8086

15 de 16

Universidad Nacional de Rosario

FCEIA

Digital II

4.3.1 Set de instrucciones 8086


Como parte de la documentacin del entorno se encuentra el set de instrucciones del 8086, como se puede ver en la Figura 18, en la parte superior de la pgina el link 8086 Instruction Set permite ver la totalidad de instrucciones soportadas por el entorno y la descripcin y ejemplo de uso de la mismas. Adicionalmente en el apunte de Microprocesadores y Microcontroladores o la Gua de Referencia Rpida del 80186 se encuentra el set de instrucciones completo y la descripcin y funcin de cada instruccin.

Noviembre 2010

Introduccin al emu8086

16 de 16

You might also like