You are on page 1of 6

DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-

FEC

ARQUITECTURA DE MAQUINAS I

Universidad nacional de ingeniera

Facultad de electrotecnia y
computacin

Departamento de elctrica

Reporte de laboratorio de
microprocesadores

Grupo 3T1 EL

Elaborado por: Javier Martnez


Astorga.
Ricardo Aaron Arce Sandoval

Fecha 24 de marzo de 2017

1
Prof: Melania Sols
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-
FEC

ARQUITECTURA DE MAQUINAS I
GUIA DE LABORATORIO 1: INTRODUCCIN AL SIMULADOR EMU8086

OBJETIVOS
Practicar el uso del emulador emu8086 para simulacin de
programacin en lenguaje ensamblador.
Conocer las bases para hacer un programa en ensamblador.
Conocer los principales registros del microprocesador 8086.
Comprobar el funcionamiento de la instruccin MOV y la directiva ORG.

INTRODUCCION

Un programa en computadora es una serie de instrucciones ejecutadas por una


unidad central de procesamiento (CPU), mediante una serie de acciones
lgicas. Antes de que un programa sea ejecutado por la CPU, ste debe ser
almacenado en memoria en forma binaria. Este tipo de programacin es
llamado programacin en lenguaje de mquinas y es el nico lenguaje que la
computadora entiende.

Interpretar un cdigo en lenguaje de mquina es bastante complicado y muy


difcil de recordar, por lo que el microprocesador normalmente se programa
usando el lenguaje ensamblador o un lenguaje de alto nivel (PASCAL, BASIC,
C, etc.).

El microprocesador lee continuamente el contenido de los registros de memoria


empezando por la direccin 00000H. Reconoce el primer dato que lee como
un cdigo de operacin y seguidamente incrementa el apuntador de
instruccin, IP. Luego decodifica la instruccin para conocer qu operacin
deber realizar y toma de las direcciones de memoria siguientes los operandos
necesarios para ejecutar la instruccin. El microprocesador utiliza el registro IP
como puntero para la lectura de cada instruccin almacenada en memoria.

El ensamblador tiene una directiva llamada ORG (ORIGEN) que no es una


instruccin, sino que le indica al ensamblador la direccin de inicio del
programa. Es importante incluir comentarios dentro del cdigo ensamblador,
para ello se debe anteponer a dicho comentario un punto y coma.

La instruccin MOV copia el valor del registro, dato o contenido de una


direccin de memoria fuente, hacia el registro o direccin de memoria destino.
La fuente no cambia, solamente el destino. Los valores pueden ser de 8 o 16
bits.

MOV destino, fuente

2
Prof: Melania Sols
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-
FEC

ARQUITECTURA DE MAQUINAS I
La instruccin MOV no modifica el registro de banderas

Es posible hacer que el microprocesador cambie el contenido del apuntador de


instruccin y de esta manera ejecutar una instruccin que no es la siguiente en
el mapa de memoria. Este procedimiento es llamado instruccin de salto.

Las instrucciones de saltos son usadas para saltar entre diferentes localidades
de memoria. Estos saltos se pueden hacer de forma especfica o pueden ser
condicionados mediante la prueba del estado de cuatro bits del registro de
banderas.

El bit de cero [Z]


El bit de acarreo y prstamo [C]
El bit de paridad [P]
El bit de desborde [O]
El bit de signo [S]

PROCEDIMIENTO

1. Corra el simulador emu8086 haciendo doble clic en el cono

2. En la pantalla inicial del simulador cuando escogemos new,


aparecer este encabezado:

ORG 100h

3
Prof: Melania Sols
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-
FEC

ARQUITECTURA DE MAQUINAS I
Donde: COM: significa que vamos a trabajar con un archivo tipo .com, que es el
formato ms simple de un archivo ejecutable. Para leer un poco ms sobres
esto, lea el tutorial. Cuando trabajamos con un archivo de este tipo tenemos
que usar la directiva ORG que indica en qu direccin comenzar el programa.
Generalmente por defecto, el programa comienza en 0700:0100
El valor de CS es puesto por el sistema operativo que este caso es 0700h, y el
origen es el 0100h dentro del segmento de cdigo.
3. Copie las siguientes instrucciones en orden
mov ax,ffffh
mov bx,ax
mov dl,ah
mov dh, 100
hlt
4. Luego compile y simule el programa utilizando el botn de la
derecha Compile and Emulate.
5. Para este programa en particular se ver un error de compilacin,
por lo tanto no podr ser simulado. Observe qu tipo de error es y reprelo
sustituyendo en la lnea de error el valor correcto.
6. Nuevamente compilemos y simulemos el programa y en este
caso pasar directamente a la pantalla del simulador.
7. Observe la pantalla del simulador y la pantalla del programa
fuente que se est simulando.
8. Observe los registros principales del microcomputador 8086.
tambin se puede observar la pila o stack, la ALU, el registro de banderas.
Dentro del men View (extended Value Viewer) se pueden ver y cambiar los
registros y los contenidos de memoria.
9. Corra el programa paso a paso (single step) y observe cmo
cambian los registros.
10. Cmo cambia el registro IP?
El registro IP cambia de 2 en 2

11. Con qu valor se carga CX y porqu ste no cambia?


Por qu puede contener un valor para controlar el nmero de veces
que un ciclo se repite o un valor para corrimiento de bits.
y se carga con 00010001
12. Cuntos bytes tiene la primera instruccin? Cuntos bytes
tiene la segunda instruccin? Cuntos bytes en total tiene el programa?
Puede guardar el programa si lo desea.
13. Abra un nuevo archivo y escriba ahora las siguientes
instrucciones en el simulador:
mov ah,'b'
mov al,30h
mov bx,ax
mov [bx],33h
mov [bx+2],33h
4
Prof: Melania Sols
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-
FEC

ARQUITECTURA DE MAQUINAS I
mov cx,[bx]
hlt
14. Observe nuevamente como cambian los registros y las
direcciones de memoria afectadas utilizando la ventana Extended Value
Viewer. Anote los bytes de cada instruccin y sume en total el nmero de
bytes que contiene el programa. Anote en una tabla como la siguiente los
cambios ocurridos en los registros.

Instruccin IP AX BX CX [6230 [6231 [6232 [6233]


] ] ]
Valores iniciales 0 0 0 11 0 0 0 0
Mov ah,b 02 0 0 11 0 0 0 0
Mov al,30h 02 0 0 11 0 0 0 0
Mov bx,ax 04 30 0 11 0 0 0 0
Mov [bx],33h 06 30 30 11 0 0 0 0
Mov [bx+2],33h 09 30 30 11 0 0 0 0
Mov cx,[bx] 0D 30 30 11 0 0 0 0
Hlt 0F 30 30 11 0 0 0 0

15. Para cada instruccin diga el tipo de direccionamiento usado.


- Mov ax, ffffh
- Mov bx, ax
- Mov dl, ah
- Mov dh, 100
- hlt

16. En los diferentes tipos de direccionamiento, tambin se dan con


nombres de variables, stas pueden ser de 8 o 16 bits. Una variable o un
dato de 8 bits es un byte y una variable o dato de 16 bits se conoce como
una palabra. En ensamblador la directiva db indica que el valor de esa
variable es del byte que sigue a continuacin y dw indica que el valor de
esa variable es de la palabra que sigue a continuacin. Por ejemplo, copie
las siguientes instrucciones en el simulador.
mov al,var2
mov ah,30h
mov bx,var1
mov ch,var2
ret

17. Cul es la diferencia entre utilizar el modo de direccionamiento


inmediato con un dato directamente o con una variable que contiene ese
dato?
5
Prof: Melania Sols
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-
FEC

ARQUITECTURA DE MAQUINAS I
Cambia cx
18. Investigue las instrucciones hlt, ret y end.
RET: Retorno de procedimiento.
Hlt: terminar el programa.
END: (etiqueta) Debe ser la ltima sentencia del cdigo fuente.
La etiqueta indica dnde debe comenzar la ejecucin del programa.
19. Entregue un reporte de esta prctica de laboratorio una semana
despus de haberla realizado, conteste a todas las preguntas incluidas en la
gua, aada conclusiones.

6
Prof: Melania Sols

You might also like