Professional Documents
Culture Documents
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
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.
Gua
Figura 2
Gua
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
Gua
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
INICIO
AH = 7Ah
BL = 99
CL = 11001111b
AX = 100
BX = A
CX = 0ABCDh
DX = 6540
FIN
#MAKE_COM#
ORG 100h
mov AH, 7Ah
;carga AH con 7Ah
mov BL, 99
;carga BL con 99
mov CL, 11001111b ;carga CL con 11001111b
mov
mov
mov
mov
ret
AX, 100
BX, A
CX, 0ABCDh
DX, 6540
;carga
;carga
;carga
;carga
AX con 100
BX con carcter A
CX con ABCDh
DX, con 6540
;termina el programa
Gua
Figura 5
12) Copie los datos almacenados en los registros antes de ejecutar el programa:
AX:
BX:
CX:
DX:
CS:
DS:
ES:
SS:
BP:
IP:
SP
DI:
SI:
13) Ejecute el programa totalmente (RUN) y anote los datos resultantes. Verifique
si concuerdan con los datos que usted esperaba.
AX:
BX:
CX:
DX:
CS:
DS:
ES:
SS:
BP:
IP:
SP
DI:
SI:
Gua
OFFSET
0100
LENGUAJE DE
MQUINA
CAMPOS
B4
7
0B56
F400
programa
0000
0150
mov
mov
mov
mov
mov
mov
mov
ret
LENGUAJE
ENSAMBLADOR
LINEA
AH, 7A
BL, 99
CL, 11001111b
AX, 100
BX, 78
CX, 0ABCDh
DX, 6540
ejecuta
un
procedimiento
INT 20H
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.
Gua
SEGUNDO PROGRAMA
NOTA: Observe que la instruccin MOV se ha escrito de diferentes formas.
#MAKE_COM#
INICIO
ORG 100h
DX = 112h
BX = DX
AL = A
AH = 61h
M [BX] = AH
M [BX +1] = AL
CX = M [BX]]
FIN
RET
OFFSET
Inicio del
programa
Antes de
5
Despus
de 5
Despus
de 6
Despus
de 7
0112h
0113h
REGISTRO CX
TABLA 2
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.
Gua
DIRECCIONES
SEGM
OFFSET
LENGUAJE DE MQUI
CAMPOS
LENGUAJE ENSAMBLADOR
LINEA
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
INICIO
AX = 0B800h
DS = AX
CL = A
CH = 1101111b
BX = 15Eh
M [BX] = CX
#make_com#
Org 100h
MOV [BX], CX
; Copia contenido de CX en la
;direccin (B800:015E) DS:BX
RET
FIN
Gua
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?