Vous êtes sur la page 1sur 10

FACULTAD: INGENIERÍA DE PRODUCCIÓN Y SERVICIOS

ESCUELA: INGENIERIA EN TELECOMUNICACIONES

CURSO: MICROPROCESADORES Y
MICROCONTROLADORES

LABORATORIO
GUIA 1 Y GUIA 2

Ing. Rubén Mateos Herrera


PERTENECE A :

- Pacheco Camargo José Alexander


Cui : 20151192
GUIA 1
Objetivo general

Utilizar el programa emulador EMU8086 y relacionarlo con los elementos básicos que conforman el modelo de
programación del microprocesador 8086.
Objetivos especificos

 Identificar los principales elementos que conforman el ambiente de


programación del software EMU8086.
 Identificar los registros del modelo de programación del 8086.
 Observar la relación que existe entre los lenguajes de ensamblador y máquina.
 Reconocer de forma intuitiva los modos de direccionamiento básicos del micro 8086.
 Imprimir un carácter en la pantalla de usuario, modificando sus parámetros.
 Utilizar el emulador en la creación y ejecución un archivo tipo COM.
Materiales y equipos

 Guía 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 botón que indica “New”.

3) Observará una ventana donde escribirá sus futuros programas, llamados en general “código
fuente”.
4) Desde ahí se puede crear un nuevo documento. Observe la figura 2 “Choose code template

Figura 2

Se le presentarán seis opciones, elija “empty workspace”. Observará (apóyese en la Figura 3) una
ventana con la clásica 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 líneas de comando que son un
encabezado necesario para crear un archivo tipo COM.

Figura 3

5) Seleccione en la barra de menú la opción “EMULATOR” y en ésta “SHOW EMULATOR”. Se abrirá una
ventana donde podrá observar diferentes elementos (apóyese en la Figura 4 para interpretar
información). Algunos botones que permiten realizar acciones como: cargar (load), recargar (reload),
ejecutar paso a paso (single step) y ejecutar (run). También 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 código
fuente (actual source), la Unidad Aritmética y Lógica (ALU), la Pila (stack) y el registro de banderas
(flags) o estados.

6) Cierre la ventana del emulador, pero no cierre la ventana del código fuente.

NOTA: las direcciones de memoria están escritas en el formato de segmento y desplazamiento”


Figura 4

7) Ahora analice el siguiente código fuente (llamado PRIMER PROGRAMA), ayudándose de los
comentarios y del diagrama de flujo que lo acompaña. Intente predecir cada cambio que tendrán 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 botón respectivo compile el código fuente, note que el programa le informa que creará un
archivo con extensión COM.
¿Qué nombre la asigna el sistema al archivo .COM? Noname.com

10) Si no se dan errores de compilación proceda a emular el programa. Analice la información que se le
presenta auxiliándose de la Figura 5.

11) Puede observar una copia del código fuente en el que se marca la línea de instrucción que será
ejecutada. También puede ver en la ventana del emulador el contenido de los registros, la memoria
y el programa desensamblado. Si tiene problemas para interpretar esta información, 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: BX: CX: DX:


H:00 L:00 H:00 L:00 H:00 L:13 H:00 L:00
CS: DS: ES: SS:
0700 0700 0700 0700
BP: IP: SP:
0000 0100 FFFE
DI: SI:
0000 0000

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

AX: BX: CX: DX:


H:00 L:64 H:00 L:41 H:AB L:CD H:19 L:8C
CS: DS: ES: SS:
F400 0700 0700 0700
BP: IP: SP:
0000 0154 FFFA
DI: SI:
0000 0000
14) Cargue nuevamente el programa, observe el contenido de los registros, sobre todo el contenido
de CS e IP. Analice sus observaciones comparándola con la que aparece en la TABLA 1. Si tiene
dudas por favor solicitar asistencia de su instructor.
La CS no cambia, en cambio el IP varía de acuerdo a los campos de las instrucciones realizadas.

15) Ejecute solo la primera instrucción (Single step). Observe los cambios (sobre todo en CS e IP) ¿se
cargó el dato esperado en AH?
Si se cargó con 7A.

16) Interprete la información de la TABLA 1 respecto de sus resultados

Lo único q realiza este programa es transferir datos a los registros.

17) Continúe ejecutando paso a paso el programa hasta la instrucción RET, al mismo tiempo llene los
espacios vacíos de la TABLA 1. Si tiene dudas en esta actividad, por favor solicite la asistencia de su
instructor.

18) Continúe ejecutando las instrucciones hasta concluir el programa.

DIRECCIONES LENGUAJE DE LENGUAJE


MÁQUINA ENSAMBLADOR
SEGM(CS) OFFSET CAMPOS LINEA
0B56 0100 B4 7ª MOV AH, 7A
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, 78
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 Interrupción.
0B56 0000 CD 20 INT 20H
F400 0150 FF FF BIOS DI
TABLA 1

19) Cierre la ventana del emulador, pero no cierre la ventana del código fuente.

20) Cree un archivo nuevo, tipo COM y escriba el código llamado SEGUNDO PROGRAMA, después de su
respectivo encabezado, no olvide los tabuladores.
SEGUNDO PROGRAMA
NOTA: Observe que la instrucción 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. Más
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 instrucción, tratando de predecir las
acciones que se realizarán, auxiliándose de los comentarios de cada instrucción, si tiene problemas
consulte con instructor.

23) Observe y anote en la TABLA 2 los resultados de su observación

24) Ejecute la quinta instrucción, anote los resultados.

25) Ejecute paso a paso el resto de instrucciones, tomando nota de los resultados.

SEG (DS) OFFSET Inicio del Antes de 5ª Después de Después de Después de


programa 5ª 6ª 7ª
0700 0112h 90 90 61 61 61
0700 0113h 90 90 90 41 41
REGISTRO CX 00 11 00 11 00 11 00 11 41 61
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 código fuente.
DIRECCIONES LENGUAJE DE MÁQUI LENGUAJE ENSAMBLADOR
SEGM OFFSET CAMPOS LINEA
0700 0100 BA 12 01 MOV DX, 0012h
0700 0103 8B DA MOV BX, DX
0700 0105 B0 41 MOV AL, 04h
0700 0107 B4 61 MOV AH, 061h
0700 0109 88 27 MOV [BX], AH
0700 010B 88 47 01 MOV[BX] + 01h
0700 010E 8B 0F MOV CX, [BX]
0700 0110 C3 RET
TABLA 3

29) Escriba un nuevo programa .COM y digite el código llamado TERCER PROGRAMA.
30) Emule y ejecute el programa (run) y note la información que se presenta en la pantalla de usuario,
debe observar un carácter ‘A’ con un color para el fondo y para el carácter. Anote esa información.

Se muestra el carácter A de color blanco con un fondo rosado

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.

Cambia la posición en la que es mostrado el carácter ‘A’ hacia la derecha


33) Modifique ahora el dato almacenado en CH, cambiándolo por 11010000b y observe su efecto,
anote sus observaciones.
El color de la letra cambio a negro, en la misma posición y con el mismo fondo
34) Vuelva a cambiar CH, ahora por 10011110b, observe y describa el cambio.
Se cambia el color de texto a amarillo y el fondo a azul.
35) Pruebe a hacer algunos cambios en CH, CL y BX, anote sus observaciones:
BX cambia la posición del carácter, CL el contenido y CH tiene 4 bits que representan el color de letra
y fondo.
Notifique a su instructor que ha terminado la práctica.

Análisis de resultados

a) Primer programa.

En el encabezado del programa ¿por qué se incluye la línea “org 100h”?


Al introducir datos en los registros del microprocesador se usan diferentes formatos (bases de numeración)
¿cuántos y cuáles son?
La sintaxis de la instrucción MOV define tres campos: instrucción, dato1 y dato2. Al moverse los datos ¿cuál es
la fuente y cual el destino?
Al observar la tabla1 se nota que a la misma instrucción MOV se le asignan diferentes códigos hexadecimales
¿a qué se debe esto?
¿Cuál es la función que cumple el registro IP dentro del PRIMER PROGRAMA?
En la columna OFFSET de la tabla1, éstos no se incrementan a una razón constante
¿por qué?

a. La directiva org 100h indica al ensamblador que continúe el ensamblado desde la dirección en este caso
100h.
b. Son tres: Binario Hexadecimal Octal.
c. La fuente es el dato2 y el destino es el dato1.
d. La instrucción MOV puede recibir en cualquiera de sus campos un numero hexadecimal.
e. Guarda la dirección de memoria donde se encuentra cada instrucción.
f. Porque las instrucciones tienen entre 1 o 3 campos.

b) Segundo programa.

Al comparar las dos primeras instrucciones ¿qué diferencias hay al ejecutarlas, siendo que las dos son MOV?

El primero carga dato inmediato en DX y el segundo copia DX en BX

En las últimas tres instrucciones se incluyeron corchetes (paréntesis cuadrados) en las instrucciones ¿Qué
diferencias observó en su ejecución respecto a las primeras dos instrucciones?
El primero y el segundo los almacena en la dirección indicada por DS:BX y el tercero copia el dato de la
dirección DS:BX en el registro CX.

¿Por qué al ejecutar la séptima instrucción los datos se almacenan en CX en ese orden específico?
Porque inicia con el bit más significativo y termina con el menos significativo.

c) Tercer programa.

Al ejecutar el programa, a medida que hacía las modificaciones ¿qué efecto concreto logra el cambio en el
registro BX?

Cambia la posición del carácter ‘A’ en la consola.


Al modificar CH ¿qué bits específicos se modificaron para lograr cambios en el fondo y color de los caracteres?
Los bits impares, los 4 primeros bits guardan color de fondo y los otros color de letra.

INVESTIGACION FORMATIVA

Esta actividad debe desarrollarse posteriormente a la ejecución de la guía de laboratorio y tiene por objetivo
complementar y ampliar la temática desarrollara teniendo en mente las actividades futuras.

Investigue:

¿Qué son los modos de direccionamiento?


Son las formas con las que se puede hacer referencia,a los operandos fuentes o a los resultados.

¿Cuántos y cuáles modos de direccionamiento tiene el microprocesador 8086?


Son 6 los modos de direccionamiento que posee, estos son:
 Direccionamiento inmediato.
 Direccionamiento directo.
 Direccionamiento indirecto.
 Direccionamiento indexado.
 Direccionamiento mediante registro.
 Direccionamiento relativo a registro.

¿Qué modos de direccionamiento posee la instrucción MOV?


Tenemos varios entre ellos:Direccionamiento por registro,inmediato, indirecto, base + índice, relativo por
registro, relativo base + índice.

¿Qué diferencias hay entre las instrucciones XCHG ya la instrucción MOV?


Lo que hace XCHG es intercambiar datos, en cambio MOV los transfiere.

BIBLIOGRAFIA

Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486. Arquitectura,
programación e interfaces, Prentice Hall, México DF, 19953
Biblioteca UDB 001.6404 B847 1997