Vous êtes sur la page 1sur 9

Gua

Introduccin al EMU8086

Objetivo General
Utilizar el programa emulador EMU8086 y relacionarlo con los elementos bsicos que
conforman el modelo de programacin del microprocesador 8086.
Objetivos especficos

Identificar los principales elementos que conforman el ambiente de


programacin del software EMU8086.
Identificar los registros del modelo de programacin del 8086.
Observar la relacin que existe entre los lenguajes de ensamblador y mquina.
Reconocer de forma intuitiva los modos de direccionamiento bsicos del micro 8086.
Imprimir un carcter en la pantalla de usuario, modificando sus parmetros.
Utilizar el emulador en la creacin y ejecucin un archivo tipo COM.

Materiales y equipos

Gua de laboratorio
Computadora PC con el programa EMU8086

Procedimiento
1) Ejecute el programa emulador de microprocesadores EMU8086, haciendo doble clic en el
icono del escritorio, Aparecer una ventana como la Figura 1.

Figura 1: Ventana inicial del emu8086


2) Presione el botn que indica New.
3) Observar una ventana donde escribir sus futuros programas, llamados en
general cdigo fuente.
4) Desde ah se puede crear un nuevo documento. Observe la figura 2 Choose code
template

Figura 2

Se le presentarn seis opciones, elija empty workspace. Observar (apyese en la


Figura 3) una ventana con la clsica barra de men (File, Edit, etc.) con algunos
elementos distintivos (Compile, Emulator, Math, etc.) as como una serie de
botones que le permiten abrir un nuevo archivo, compilar, emular y otras funciones
tiles. En el texto observar dos lneas de comando que son un encabezado necesario
para crear un archivo tipo COM.

Figura 3
5) Seleccione en la barra de men la opcin EMULATOR y en sta SHOW
EMULATOR. Se abrir una ventana donde podr observar diferentes elementos
(apyese en la Figura 4 para interpretar informacin). Algunos botones que
permiten realizar acciones como: cargar (load), recargar (reload), ejecutar paso a
paso (single step) y ejecutar (run). Tambin podr ver, en la parte central, tres
columnas en las que se detalla el contenido de los registros del 8086, el contenido de
la memoria y el programa desensamblado. Abajo podr acceder a la pantalla de
usuario (user screen), el cdigo fuente (actual source), la Unidad Aritmtica y
Lgica (ALU), la Pila (stack) y el registro de banderas (flags) o estados.
6) Cierre la ventana del emulador, pero no cierre la ventana del cdigo fuente.
NOTA: las direcciones de memoria estn escritas en el formato de segmento y desplazamiento

Figura 4
7) Ahora analice el siguiente cdigo fuente (llamado PRIMER PROGRAMA),
ayudndose de los comentarios y del diagrama de flujo que lo acompaa. Intente
predecir cada cambio que tendrn los datos hexadecimales en los registros del
microprocesador.
PRIMER PROGRAMA

8) Abra el archivo fuente llamado guia01.asm, como notar es el mismo programa que
previamente analiz.
9)

Usando el botn respectivo compile el cdigo fuente, note que el programa le


informa que crear un archivo con extensin COM.

Qu nombre la asigna el sistema al archivo .COM?

Mycode

10) Si no se dan errores de compilacin proceda a emular el programa. Analice la informacin


que se le presenta auxilindose de la Figura 5.
11) Puede observar una copia del cdigo fuente en el que se marca la lnea de instruccin que
ser ejecutada. Tambin puede ver en la ventana del emulador el contenido de los
registros, la memoria y el programa desensamblado. Si tiene problemas para
interpretar esta informacin, por favor solicite asistencia por parte de su instructor.

Figura 5
12) Copie los datos almacenados en los registros antes de ejecutar el programa:
AX: 0000

BX: 0000

CX: 0013

DX: 0000

CS: 0700

DS: 0700

ES: 0700

SS: 0700

BP: 0000

IP: 0100

SP FFFE

DI: 0000

SI: 0000

13) Ejecute el programa totalmente (RUN) y anote los datos resultantes. Verifique si
concuerdan con los datos que usted esperaba.
AX: 0064

BX: 0041

CX: ABCD

DX: 198C

CS: F400

DS: 0700

ES: 0700

SS: 0700

BP: 0000

IP: 0154

SP FFFA

DI: 0000

SI: 0000

14) Cargue nuevamente el programa, observe el contenido de los registros, sobre todo el
contenido de CS e IP. Analice sus observaciones comparndola con la que aparece en
la TABLA 1. Si tiene dudas por favor solicitar asistencia de su instructor.
15) Ejecute solo la primera instruccin (Single step). Observe los cambios (sobre todo en
CS e IP) se carg el dato esperado en AH?
16) Interprete la informacin de la TABLA 1 respecto de sus resultados
17) Contine ejecutando paso a paso el programa hasta la instruccin RET, al mismo
tiempo llene los espacios vacos de la TABLA 1. Si tiene dudas en esta actividad, por
favor solicite la asistencia de su instructor.
18) Contine ejecutando las instrucciones hasta concluir el programa.

DIRECCIONES

LENGUAJE DE
MQUINA

LENGUAJE
ENSAMBLADOR

SEGM(CS)
OFFSET
LINEA
CAMPOS
0700
0100
B4
7A
mov AH 7A
mov BL, 99
0700
0102
B3
63
0700
0104
B1
CF
mov CL, 11001111b
mov AX 100
0700
0106
B8
64
00
0700
0109
BB
41
00
mov BX 78
mov CX, 0ABCDh
0700
010C
B9
CD
AB
0700
010F
BA
8C
19
mov DX, 6540
ret
0700
0112
C3
NOTA: A partir de este punto el programa ejecuta un procedimiento
predeterminado llamado Interrupcin.
07000
0000
INT 20H
CD
204
20
032
07001
0150
TABLA 1
19) Cierre la ventana del emulador, pero no cierre la ventana del cdigo fuente.
20) Cree un archivo nuevo, tipo COM y escriba el cdigo llamado SEGUNDO
PROGRAMA, despus de su respectivo encabezado, no olvide los tabuladores.

SEGUNDO PROGRAMA
NOTA: Observe que la instruccin MOV se ha escrito de diferentes formas.

21) Emule el programa y antes de ejecutarlo anote en la TABLA 2 el contenido de las


direcciones que tienen desplazamiento 0112h y 0113h, as como el contenido de
CX en la columna Inicio. Ms adelante se retomar este punto para comparar los
cambios en los datos.
22) Corra paso a paso el programa hasta antes de ejecutar la quinta instruccin, tratando
de predecir las acciones que se realizarn, auxilindose de los comentarios de cada
instruccin, si tiene problemas consulte con instructor.
23) Observe y anote en la TABLA 2 los resultados de su observacin
24) Ejecute la quinta instruccin, anote los resultados.
25) Ejecute paso a paso el resto de instrucciones, tomando nota de los resultados.
SEG
OFFSET
(DS)
0112h
0700
0700
0113h
REGISTRO CX

Inicio del
programa
144
144
0011

Antes de
5
144
144
0011
TABLA 2

Despus
de 5
097
144
0011

Despus
de 6
097
065
0011

Despus
de 7
097
065
4161

26) Cargue nuevamente el programa.


27) Ejecute paso a paso el programa, anotando en la TABLA 3 el valor de cada dato que se
le solicite, tomando como referencia el procedimiento con el que complet la
TABLA 1.
28) Cierre la ventana del emulador, pero no cierre la ventana del cdigo fuente.

DIRECCIONES
SEGM
0700
0700
0700
0700
0700
0700
0700
0700

OFFSET
0100
0103
0105
0107
0109
010B
010E
0110

LENGUAJE DE MAQUINA LENGUAJE ENSAMBLADOR


BA
8B
B0
B4
88
88
8E
C3

CAMPOS
12
DA
41
61
27
47
0F

01

01

LINEA
MOV DX, 00112h
MOV BX, DX
MOV AL, 041h
MOV AH, 061h
MOV [BX], AH
MOV [BX]+01h, AL
MOV CX, [BX]
RET

TABLA 3
29) Escriba un nuevo programa .COM y digite el cdigo llamado TERCER PROGRAMA.
30) Emule y ejecute el programa (run) y note la informacin que se presenta en la pantalla de
usuario, debe observar un carcter A con un color para el fondo y para el carcter. Anote esa
informacin.

TERCER PROGRAMA

31) Modifique el programa sustituyendo el dato que se almacena en BX (15Eh) por


10Eh y corra el programa.
32) Observe y describa como afect el cambio al funcionamiento del programa

33) Modifique ahora el dato almacenado en CH, cambindolo por 11010000b y observe su efecto, anote
sus observaciones.

34) Vuelva a cambiar CH, ahora por 10011110b, observe y describa el cambio.

35) Pruebe a hacer algunos cambios en CH, CL y BX, anote sus observaciones:

36) Notifique a su instructor que ha terminado la prctica.


Anlisis de resultados
a) Primer programa.
En el encabezado del programa por qu se incluye la lnea org 100h?
Al introducir datos en los registros del microprocesador se usan diferentes formatos
(bases de numeracin) cuntos y cules son?
La sintaxis de la instruccin MOV define tres campos: instruccin, dato1 y dato2. Al
moverse los datos cul es la fuente y cual el destino?
Al observar la tabla1 se nota que a la misma instruccin MOV se le asignan diferentes
cdigos hexadecimales a qu se debe esto?
Cul es la funcin que cumple el registro IP dentro del PRIMER PROGRAMA?
En la columna OFFSET de la tabla1, stos no se incrementan a una razn constante
por qu?
b) Segundo programa.
Al comparar las dos primeras instrucciones qu diferencias hay al ejecutarlas, siendo que las
dos son MOV?
En las ltimas tres instrucciones se incluyeron corchetes (parntesis cuadrados) en las
instrucciones Qu diferencias observ en su ejecucin respecto a las primeras dos
instrucciones?
Por qu al ejecutar la sptima instruccin los datos se almacenan en CX en ese orden
especfico?
c) Tercer programa.
Al ejecutar el programa, a medida que haca las modificaciones qu efecto concreto logra
el cambio en el registro BX?

Vous aimerez peut-être aussi