Está en la página 1de 16

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
Ing. Esteb n

Nov
viembre 2010
0
Universidad Nacional de Rosario FCEIA Digital II

Tabla de contenidos
1  Introducción .................................................................................................................... 3 
2  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  Utilización del entorno ................................................................................................... 5 
4  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 nativa admite dispositivos No admite dispositivos virtuales en forma nativa


virtuales.

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 No permite emular el espacio de E/S


OUT)

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 e seguridad, que el emu8
uestiones de 8086 se insta
ale en la raízz
del disco uación, en el momento de la instalación del emu8
o C. Para evvitar esta situ 8086 se deb be elegir otra
a
ubicación para la instalación de el programa, por ejemploo otra particción (D\:) o el
e directorio Archivos de e
Programma1.
Al haberr elegido otro
o sitio de insstalación disstinto al prop
puesto por defecto, es necesario mo odificar en ell
archivo c:\emu88086\emu808 86.ini los valorees de EMUPOR 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 utilizadoos en el Traabajo Prácticco N°2. Paraa 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 emu80886.hw.

1
Por defeccto Windows Vista/7 no permite en modificar arc
chivos ubicadoss directorio Archhivo de Program mas (o Program Files), por esta
a
razón paraa poder editar el
e archivo emu8086.ini luego de e la instalación se debe previaamente modifica ar de manera te
emporal el nivell
de seguriddad y protecciónn de usuario de Windows. Para a esto ir a Control Panel Æ Sy ystem and Security Æ Action Center,
C luego en
n
Security deebajo de User Account
A Controol hacer click en
n Change Settin ngs. Llevar la barra de desplazzamiento al niveel de seguridad
d
vo emu8086.in, luego de esto re
más bajo ((Never notify) y aceptar. Editar ahora el archiv 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 escribbir un nuevo o código enn lenguaje ensamblado


e r (“Código F
Fuente” con
n
extensión .ASM)
ƒ Code exxamples: 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 permmite explorar gran varie
edad de doccumentos dee
ayuda.
ƒ Recent file:
f muestraa 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:

Figura 4 – Elección
E del tipo de temp
plate
ƒ COM tem mplate (direcctiva #make__com#): es el formato más
m simple y antiguo de e un archivoo
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 direectiva ORG 100h al co omienzo del código parra indicar la a
utilizació
ón de este tipo
t de arch
hivos. Formaato soportaddo 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 archivoo
ejecutabble. No tiene limitacioness en cuanto al tamaño del
d archivo y número de segmentos..
Este temmplate 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 cuandoo encuentraa
definido un segmento o de pila.
ƒ 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
archovo "MY.BINF" y cargará al archive e "MY.BIN" en la ubiccación espe ecificada en n
"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 noo 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 ene 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
dirección a 0000:7c00h h. Este temp
plate permite
e emular el bootedo
b de una
u IBM PC C
desde el floppy disk.
En Digita
al II utilizaremmos para la resolución del trabajo prráctico un tem
mplate modifficado y no trrabajaremoss
con ningguno de estos cuatro te emplates preedefinidos en n el emu808 86, con lo cual
c en esta ventana se e
deberá seleccionar
s la
a opción “em
mpty workspaace”.
Luego de esto tendreemos acceso o a la ventan
na principal del
d emuladorr que cuenta a con una ba
arra de menú
ú
de Windows (file, ed
dit, bookmarkks, assembleer, etc.) y varrios botones de uso frecuente como New, Open,,

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 ejempplo, 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 “exammples”.

Figura 6 – Editor de código


c fuente
e
Luego, aal presionar el
e botón “Em
mulate” se ab
brirán dos nuuevas ventan
nas, una es el
e emulador propiamente
p e
dicho (F
Figura 8 – Emmulador) 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” , se
s tendrá accceso a gran
n
variedad
d de funcione
es e informacción:

Direcciones Cóódigo
Cód
digo Código C
Código Máquina
a
cas
Físic Desenssamblado
Máquin
na (HEX) Máq
quina (DEC) (ASCII)
o inte
ermedio
Fig
gura 8 – Emulador
En la parte superior de la ventana se puede ver
v la barra d ntas con las siguientes opciones:
de herramien
ƒ 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, dadoo que se tata
a
de un emmulador no se s tiene acceeso 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
nuevameente.
ƒ 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 detienee 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á deppurando prog e lugar donde se encuen
grama o ejeccutar el progrrama hasta el ntra el cursorr (“run until”).
Debajo ded la barra de
d botones ses observan tres paneless, a la izquierda se puede
e ver el esta
ado de todoss
nibles en el 8086. Dura
los regisstros dispon ante la ejecuución de un n programa, se puede modificar ell
contenid
do de los mismos.
m Adeemás, al haccer doble click
c sobre alguno
a de lo
os registros se abre ell
"Extendeed 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 see pueden ve er dos panelees, 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ó mal, decimall y ASCII de cada byte de
ón hexadecim e código. Enn
el panel de la derech
ha se pueden n ver las insttrucciones de
e assembler pero con lass direccioness y etiquetass
eltas por partte del ensam
ya resue mblador.
En ambos paneles, el código resaltado
r en azul muesttra la próximma instruccióón a ser eje ecutada. Porr
ejemplo,, en Figura 8 veremos quue la instrucción a ser ejjecutada es MOV AX, 00 003h, y en el panel de laa
izquierdaa 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 paraa la instrucc
ción MOV AX X, mientras que los doss
bytes sig
guientes (dire
ecciones 071101h y 071002h) represenntan 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 cadac ejecuta ón aquellos registros qu
ar instrucció ue se haya an modificad do se verán n
resaltado
os en azul. Tener en cu uenta que ele valor de loos 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ónn
del programa.
arte inferior de
En la pa d la ventana
a del emulad dor se puede
en encontrarr varios boto
ones de utilid
dad, el botón
n
Flags pe
ermite ver el estado de loos 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 ventanaa principal de
el emulador (Figura 8 – Emulador) se abre una ventana
v com
mplementaria
a
que mueestra el códig
go fuente:

Figura 11 – Emulador,, código fuen


nte
Durante el proceso o de debug g (depuració
ón) se podrrá ver entonnces, el có
ódigo fuente
e, el código
o
desensaamblado (código fuente con direccciones/etique etas resultas
s) y finalme
ente el códig
go máquinaa
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
nar un mapa de memoria
direccion a de 1 Mbyte
e.
El emu8 8086 trae porp 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 Taable”. Si bien
n este mapa a
predefinido facilita el
e rápido uso o y aprendiza aje del emu88086, en la cátedra de Digital
D II no utilizaremoss
este mapa para la re ealización dee los trabajo
os prácticos ya
y que el alu
umno deberá á definir su p
propio mapa a
de memo oria.

4.1.1 Custom Memory


M Map
p
La posibbilidad de de
efinir mapas de memoria a a medida ses conoce coomo “Custom
m Memory M Map”, y para
a
esto se debe crear un
u archivo en el directorio raíz del emu8086 llam mado customm_memory_ _map.inf (ej..
c:\emu80086\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 Traabajo Prácticco N°2. Unaa 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 poodrá encontraar en este ejjemplo, pero


o básicamentte este archiivo le indica al emu80866
como de ebe conforma ar el mapa de memoria. En este caso o, en la primera posición del mapa see encontrará
á
es decir, los punteros (IP
la IVT, e P y CS) a caada 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) see
encontraará el códigoo correspond diente con Arranque.bin
A . Como se puede
p ver, se
s utilizan archivos .bin,,
que es eel resultado de
d la compilaación de archhivos de código fuente.

4.1.2 Interrupcio
ones
Una de las posibilid dades que ofrece
o el em
mu8086 a diferencia
d el MASM 6.11 es la sim
de mulación dee
interrupcciones, que es uno de los
l mecanismos de los cuales dispone el 8086
6 para comu
unicarse con
n
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, taambié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 TTipo 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
microprocesaador.
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 croprocesador, mientras que las inte
astilla del mic errupciones por
p software e
son cauusadas por la l ejecución de la instrrucción “INT T n”, donde n es el tipo o de interruupció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 interruupción, el microprocesa
m dor detiene la ejecuciónn del códigoo que veníaa
procesan ndo y proce ede a ejecu utar una poorción de có ódigo indeppendiente 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 programma dónde see
encuentrra ubicada esta porción de código o. Antes dee poder ejeccutar la sub brutina asocciada a unaa
interrupcción específiica debe ob btener el CSS e IP donde e se encuen ntra la mism
ma. Esta infoormación see
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 esta tabla cuenta con 256 posicioness, y en cada
e 0 a 255, e a
una de eellas de encuuentran dos valores
v CS e IP de 16 bitts cada uno.

4.1.2.1 Interrupt Vector


V Tablee
La IVT sse encuentraa al principio del espacioo de memoria a y los primeeros cuatro bytes
b conten
ndrán el IP y
CS de laa 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
asociadoos 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 see 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 associado 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 poosiciones 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
Las interrupciones por
p hardware e son generradas por pe
eriféricos exxternos, micrrocontroladores o por ell
coprocessador matem
mático 8087.
Las interrrupciones por
p hardware e se encuenttran deshabiilitadas cuanndo el Flag de
d Interrupcioones (IF) se
e
encuentrra en 0. Cuaando el IF esstá en 1, el emu8086 veerifica continuamente loss primeros 25 56 bytes dell
archivo “emu8086.hw”, si algun no de los byytes leídos ees distinto de
d cero, porr ejemplo el byte 15, ell
microproocesador transfiere el co
ontrol a la su
ubrutina de atención
a de la interrupciión tipo 15 en
e base a loo
configura
ado en la IVT
T.
Por deffecto, la in
nterrupcioness por harddware se encuentran
e habilitadas, pero se deshabilitan
n
automáticamente cuando se estáá ejecutando
o una interrup
pción de hard
dware o software.
Cuando se produce una interrupcción por hard
dware el emulador lo indica mediante
e una leyend
da en la para
a
na del mismo
superior de la ventan o.

Figurra 14 – Emullador – Interrrupción por Hardware


H
En la Fig
gura 14 se pu
uede ver un ejemplo de interrupción
i por hardware tipo 15.
En el caaso de las interrupcion ware el emulador no re
nes por softw 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 medioo
común ppara la comuunicación con n los dispositivos virtuale
es, tanto él como
c los disp
positivos leen y escribenn
en este archivo, assí 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 emu88086 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 80866.
Estos disspositivos peermiten simuular la comunnicació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
almente a loss dispositivoss nativos del emu8086, la cátedra de Digital II desarrolló 10 dispositivoss
Adiciona
adiciona
ales que son los utilizado os en el Trabajo Práctico o N°2. Estoss nuevos disspositivos se
e encuentran n
disponib
bles luego de e su instalacción según ses indica en el punto 2.2 2 Dispositivo
os Virtuales de Digital II..
Luego dee 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 emmu8086.
En la ventana de la Figura 15 se
e puede ver una barra de
e desplazam
miento “Speedd” que permite modificarr
la veloccidad tempo oral de commportamiento
o de aquellos dispositivos donde la variable tiempo ess
importan mplo en loss Timers permite modificar la veloccidad de cue
nte, por ejem enta o en el
e tanque la a
velocidad de llenado
o o vaciado del
d mismo.
Cuando alguno de lo os genera un pedido de interrupción
os dispositivo n hacia el emmu8086 se puede
p ver en
n
la parte inferior de la ventana a la leyenda a “Atención. Hay interrrupciones pe endientes” y el tipo dee
interrupcción “INT:15””, esto debe coincidir con
n lo mostrado
o en el emula
ador (ver Fig
gura 14)

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 unaa carpeta qu ue contiene una archivo o
(…\emu8 8086\DVIO\d docs\help.pdf) de ayuda con la descrripción y formma de utiliza
ación de cada a uno de loss
dispositivvos virtuales
s. Adicionalmmente, 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. Teener 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 usoo de los disp
positivos virtu
uales, luego de la instalaación de loss
mismos, se encontra ará a disposiición un prob blema de eje
emplo resuellto y con exp plicaciones paso
p a paso..
Este ma aterial podrá resultar de mucha
m utilida
ad al momennto de entender cómo se e utilizan los dispositivoss
virtualess y para utilizzarlo como guía
g al mom mento de la resolución
r deel problema del TP2. Los archivos y
documen ntación se po odrán encon
ntrar en los siguientes direectorios:
ƒ …\emu8
8086\DVIO\do
ocs\EjemploResuelto.pdff
ƒ 8086\DVIO\ejjemplo\ejemplo_resuelto\
…\emu8

4.2.4 Ejemplo
E – Dispositivvos Tanque
e y Pulsado
ores
A continnuación se muestra
m un ejemplo típiico de los componentes
c s utilizados en la resolu
ución de loss
problema d assembler. En la capttura de pantalla de la Fig
as del trabajjo práctico de igura 17 se puede
p ver la
a
ventana principal del emu8086 donded se pueede 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
la venta d selección n de los dispositivos virrtuales y loss
dispositivvos virtualess propiamentte dichos (tan
nque y pulsaadores 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 
Emulador  Tanquee 

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 doccumentación n que se pueede acceder desde “help”” en el menúú
de herraamientas en la ventana principal del entorno (Fiigura 5 – Veentana princiipal emu80886). 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

También podría gustarte