Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MICROPROCESADORES
LABORATORIO N1
TEMA
Introduccin al EMU8086
Estudiantes:
Emilia Atapuma
Sergio Carranza
Tema:
Introduccin al EMU8086.
Objetivos:
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:
Gua de Laboratorio.
Computadora PC con el programa EMU8086.
Procedimiento:
Programa nmero 1
Emulando el programa tenemos las siguientes ventanas que nos van a ir indicando
el contenido de los registros, la memoria y el programa desensamblado.
AX: 0000
CS: 0700
BP: 0000
DI: 0000
BX: 0000
DS: 0700
IP: 0100
SI: 0000
CX: 0013
ES: 0700
SP: FFFE
DX: 0000
SS: 0700
Tabla 1
AX: 0064
BX: 0041
CX: ABCD
3
DX: 198C
CS: F400
BP: 0000
DI: 0000
DS: 0700
IP: 0154
SI: 0000
ES: 0700
SP: FFFA
SS: 0700
Tabla 2
Anlisis
Al analizar los resultados de la Tabla 2 podemos concluir que los datos ingresados son
correctos en el registro AX cargamos un valor en decimal pero automticamente el
programa lo convierte en hexadecimal en este caso el valor de 64, en el registro BX
cargamos un carcter el programa lo convierte a hexadecimal con el valor de 41, en el
registro CX se guarda el valor de ABCD y en el registro DX cargamos un valor decimal
el programa lo convierte y lo guarda con el valor 198C en hexadecimal, en el registro
CS comparamos los valores antes de correr el programa y despus de hacerlo, asumimos
que el valor del registro no cambiara pero ocurre una interrupcin por esto finalmente
cambia el valor de este registro.
LENGUAJE
ENSAMBLADOR
SEGM(CS) OFFSET (IP)
CAMPOS
LINEA
0700
0100
B4
7A
mov AH,74
0700
0102
B3
63
mov BL,99
0700
0104
B1
CF
mov CL,11001111b
0700
0106
B8
64
00
mov AX,100
0700
0109
BB
41
00
mov BX,A
0700
010C
B9
CD
AB
mov CX,0ABCDh
0700
010F
BA
8C
19
mov DX,6540
0700
0112
C3
ret
NOTA: A partir de este punto el programa ejecuta un procedimiento
predeterminado llamado Interrupcin
0700
F400
0000
0150
LENGUAJE DE MQUINA
CD
FF
20
FF
INT 20H
BIOS DI
Tabla 3
Anlisis:
Al analizar la Tabla 3, el registro CS se mantiene con el valor de 0700 desde el principio
en donde cargamos el valor AH, 7Ah pero al momento que nos encontramos con la
ltima instruccin que es RET, el valor del registro CS cambia esto se da ya que se
ejecuta un procedimiento predeterminado llamado Interrupcin, en el caso del registro
IP que se refiere al valor del offset tiene un cambio por cada instruccin cargada, es
importante que en las 3 primeras instrucciones tenemos datos que son de 8 bits al
cargarlos mientras que en las 4 ltimas instrucciones se cargan datos de 16 bits en dos
partes, INTEL creo la regla que en este caso primero se ingresan los menos
significativos y despus los ms significativos a esta regla la llamaron Little endian.
Preguntas:
5
Iniciamos con esta instruccin ya que desde la direccin 100h es donde empezaremos a
enviar las instrucciones de nuestro programa.
Se debe a que cargamos a los diferentes registros valores hexadecimales, no son los
mismos valores, usamos la instruccin mov para mover los datos de los registros
correspondientes.
Programa nmero 2
6
SEG (DS)
OFFSET
0700
0112h
0700
0113h
REGISTRO CX
Inicio del
Program
a
90
90
0011
Antes de
5a
Despus
de 5a
Despus
de 6a
Despus
de 7a
90
90
0011
61
90
0011
61
41
0011
61
41
4161
Tabla 2
DIRECCIONES
SEGM(CS)
0700
OFFSET
(IP)
0100
LENGUAJE DE MAQUINA
CAMPOS
B4
12
8
01
LENGUAJE
ENSAMBLADOR
LINEA
mov DX,0112h
0700
0700
0700
0700
0700
0700
0103
0105
0107
0109
010B
010E
8B
B0
B4
88
88
C3
DA
41
61
27
47
01
mov BX,DX
mov AL,A
mov AH,61h
mov [BX],AH
mov [BX+1],AL
ret
Preguntas:
Conclusiones
Sergio Carranza
Mediante la realizacin del primer y segundo programa, podemos definir con
claridad lo que significa little endian y big endian, son conceptos importantes al
momento de realizar programas con el simulador EMU8086, por lo tanto little
endian significa que el byte de mayor peso se almacena en la direccin ms alta
mientras que el byte de menor peso en la ms baja. El concepto de big endian es
todo lo contrario el byte de mayor peso se almacena en la direccin ms baja
mientras que el byte de menor peso en la direccin ms alta.
Es importante saber porque los programas empiezan con la lnea de cdigo ORG
100h, esta instruccin nos dice que vamos a empezar en la direccin 100h, el
simulador tiene facilidades al momento de saber la funcin de cada instruccin
mediante el set instruction, al cargar valores en los registros y al presionar single
step podemos entender y relacionar la simulacin con los valores que
desebamos cargarlos y as obtener el resultado esperado.
Emila Atapuma M.
Este software posee una interfaz para el usuario amistosa que permite a nosotros
como estudiantes familiarizarse con los fundamentos de la programacin en
lenguaje ensamblador de manera intuitiva brindando una serie de recursos para
ejecutar y depurar los programas que realizamos.
El software de emulacin EMU 8086 tambin posee algunas desventajas, una de
ellas es no soportar algunas interrupciones, que son convenientes para el sistema
operativo y otra es que no se pueden acceder a los puertos fsicos reales, ya que
estos los emula usando otros programas que estn incluidos en la carpeta del
EMU.
Recomendaciones
Glosario de trminos
10
Bibliografa
http://www.algoritmia.net/articles.php?id=57
http://www.scribd.com/doc/10161583/Tutorial-EMU8086#scribd
11