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

Documentos relacionados