Está en la página 1de 5

Universidad De El Salvador

Facultad de Ingeniera y Arquitectura


Escuela de Ingeniera Elctrica
Sistemas Digitales Programables I

Gua de laboratorio # 1

Docente:

Ing. Ricardo E. Cortez

Instructores:
Br. Ernesto Alonso Cern Rodrguez
Br. Cesar Cristian Escobar Castro
Br. Jimmy Adonay Herrera Caldern
Objetivos:

Que el estudiante comprenda el funcionamiento y se familiarice con el simulador


EMU8086
Aprender a ensamblar, enlazar y correr programas usando el simulador EMU8086.
Comprender las ventajas que brinda una herramienta de simulacin en la depuracin de
programas.

EMU8086
El emulador o simulador EMU8086 es una herramienta muy poderosa y til para nuestro
aprendizaje de lenguaje ensamblador ya que combina un editor avanzado de cdigo,
ensamblador, desensamblador, emulador (PC virtual) con depurador y muchos tutoriales en un
ambiente amigable, todo para aprender el lenguaje en un solo paquete. La fuerza de este
programa se basa en que podemos compilar nuestro cdigo y ejecutarlo en el emulador pas a
paso. Entre las muchas caractersticas de este programa podemos mencionar las ms importantes:

La interface visual es muy fcil de utilizar y muy intuitiva.


Podemos observar los registros, banderas y memoria mientras se ejecuta el programa es
decir que podemos visualizar el trabajo interno de la CPU.
La PC virtual evita que los programas se ejecuten y accedan al hardware real de nuestra
computadora.
Podemos cargar ya sea archivos con extensiones .COM, .EXE, .BIN, etc.
Posee dispositivos virtuales con los cuales podemos experimentar fcilmente como lo son
visualizadores LCD, luces de trfico del sistema, motores de paso, emulacin de impresin,
etc.
Adems de poder crear nuestros propios dispositivos.

Desarrollo de la prctica:
El emulador emu8086 es una potente e importante herramienta, que nos ayudara comnmente
en la simulacin de perifricos y depuracin de los programas que realicemos para el 8086. A
continuacin se realizara una revisin general de las partes que componen este emulador.
Al ejecutar el emulador nos encontramos con la pantalla de inicio que nos permite elegir entre
diferentes opciones del emulado, desde la cual podemos seleccionar si ingresar a escribir un
programa nuevo o bien navegar entre los cdigos de ejemplo ya existente, as como tambin
ingresar a una gua completa sobre el emulador y las diferentes funciones e instrucciones del
microprocesador 8086 lo cual nos ser de vital importancia para el desarrollo de programas.

Como primer acercamiento en el laboratorio procederemos a revisar tutorial rpido de inicio


haciendo click en el icono que se presenta en la figura anterior.

Con lo cual se abrir el navegador por defecto del sistema y nos presentara una pgina web con la
informacin bsica y necesaria para comenzar a trabajar con este emulador. En la parte superior
izquierda de esta pgina web se encuentran 5 links que nos brindan informacin sobre la licencia
de adquisicin del software y diversos tutoriales entre otros, pero para nosotros ser de vital
importancia los ltimos dos apartados referentes al uso y funcionamiento del microprocesador
8086, en las cuales son el set de instrucciones del 8086 y el set de interrupciones que se pueden
ocupar en el mismo, respectivamente, estos presentan entonces una importante referencia para
el desarrollo de programas para este microprocesador.
Luego de ahondar en las instrucciones bsicas que se pueden utilizar en el 8086, procederemos a
regresar al men de inicio y seleccionar la opcin NEW y luego seleccionar la opcin Empty
workspace, desde la cual podremos escribir nuevos programas para poder ser ejecutados y
depurados de una forma metdica y muy eficiente.
La ventana principal del emulador se presenta a continuacin:

Debemos denotar algunas opciones en especial que sern muy tiles para el desarrollo de
programas y la depuracin de los mismos, algunas de las ms destacadas son las siguientes:
Examples: nos permite abrir cdigos de ejemplos, que nos muestran una idea ms especfica
respecto a la lgica de programacin en lenguaje ensamblador y el uso adecuado de las
instrucciones bsicas.
Compile: permite compilar el programa escrito y generar un archivo .COM con el cual podremos
realizar diferentes acciones que se estudiaran posteriormente en el curso.
Emulate: esta opcin nos llevara al emulador del 8086 desde el cual podremos ser capaces de
realizar una corrida del programa, o realizar una corrida paso a paso del mismo, y verificar como
las diferentes instrucciones alteran y modifican los diversos registros con los que cuenta el 8086
as como verificar el estado de su registro de banderas o del Stack

Como primera prctica se ejecutar un programa de ejemplo que est incluido en la carpeta de
instalacin del simulador. Siga los siguientes pasos:
1. Acceder al programa EMU8086, ya sea desde el icono en el escritorio o desde el men
Inicio de Windows.
2. En el men [FILE] seleccione la vieta [SAMPLES] y elija el ejemplo llamado HELLO
WORLD.
3. Dentro del men [COMPILE], presione [COMPILE AND EMULATE] o en su defecto presione
F5 desde el teclado.
4. Presione la vieta [SINGLE STEP] o la tecla F8 y observe con atencin como se ejecuta el
cdigo del programa.
5. Hacer diferentes pruebas con este u otros ejemplos.
6. Disear el programa para sumar dos nmeros que se encuentran a partir de la
direccin 1000H dejando el resultado en 1002H.

Asignaciones
Describa las ventajas y desventajas que presenta el EMU8086
Ejecute en el EMU8086 el programa que se encuentra en el anexo, y explique cada uno de
los pasos que lo conforman, colocando cada una de las ventanas que se alteran en el
EMU8086.
Disee un programa que coloque dos nmeros a partir de la direccin 1000h, y que en las
siguientes 4 direcciones (de la 1002h a la 1005h), coloque el resultado de la suma, la resta,
la multiplicacin y la divisin respectivamente.
Disee un programa que almacene 5 nmeros en una tabla llamada NUMS, que los
compare, y muestre en pantalla cual es el nmero mayor y cul es el nmero menor.
Defina el registro de banderas y explique la funcin de cada bit que lo conforma
Investigar la funcin de las siguientes instrucciones.

XCHG
LAHF
SAHF
XLAT

MOVZX
BSWAP
CMOV

Realizar un pequeo ejemplo con cada una de las siguientes instrucciones:

SHL
SHR
RCL
ROL
RCR
ROR

ANEXO
Programa que se utilizara en la prctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loose
; access to variables declared
; in code segment).
; set segment registers:
PUSH CS
POP DS ; DS = CS.
MOV AX, 0B800h
MOV ES, AX
MOV ES:[5Eh], 'W'
MOV ES:[60h], 'O'
MOV ES:[62h], 'R'
MOV ES:[64h], 'L'
MOV ES:[66h], 'D'
MOV ES:[68h], '!'
HLT

También podría gustarte