Sei sulla pagina 1di 6

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN


Maquinas Computadoras I
Dept. Sist. Digitales y Telecomunicaciones
Managua, Nicaragua

Práctica No. 1 Modos de Direccionamiento.

Datos de la práctica

Carrera Ingeniería Electrónica


Semestre Grupo
Tipo Practica Laboratorio Simulación Fecha
Asignatura Maquinas Computadoras I
Unidad Temática
No Alumnos por practica 2 No. Alumnos por reporte 2
Nombre del Profesor
Nombre(s) de Alumno(s)

Tiempo estimado Vo. Bo Del Profesor


Comentarios

OBJETIVOS:

Objetivo General

 Identificar los modos de direccionamiento haciendo uso del set de instrucciones


del Microprocesador 8086.

Objetivos Específicos

1. Aplicar las instrucciones básicas del lenguaje ensamblador del Microprocesador


8086.
2. Conocer los principales registros del Microprocesador 8086.
3. Practicar el uso del emulador EMU8086 para simulación de programación en el
lenguaje ensamblador.

MEDIOS A UTILIZAR:

 Laboratorio de Simulación
 PC
 Software Emu8086.
 Memoria USB

Universidad Nacional de Ingeniería Ing. Carlos Ortega


1
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Maquinas Computadoras I
Dept. Sist. Digitales y Telecomunicaciones
Managua, Nicaragua

INTRODUCCION

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


central de procesamiento (CPU), mediante una serie de acciones lógicas. Antes de que
un programa sea ejecutado por la CPU, éste debe ser almacenado en memoria en
forma binaria. Este tipo de programación es llamado programación en lenguaje de
máquinas y es el único lenguaje que la computadora entiende.

En nuestro caso usaremos el lenguaje ensamblador, el cual es un conjunto de


instrucciones entendibles para el usuario que le indican al microprocesador lo que tiene
que hacer. Por lo que son operaciones muy sencillas tales como: “Cargar el número 32
en el registro BX” o “Transferir el contenido del registro CL al CH”.

El microprocesador lee continuamente el contenido de los registros de memoria


empezando por la dirección 00000H. Reconoce el primer dato que lee como un código
de operación y seguidamente incrementa el apuntador de instrucción, IP. Luego
decodifica la instrucción para conocer qué operación deberá realizar y toma de las
direcciones de memoria siguientes los operandos necesarios para ejecutar la
instrucción. El microprocesador utiliza el registro IP como puntero para la lectura de
cada instrucción almacenada en memoria.

Las formas en cómo se toman los parámetros (operandos) de las instrucciones del
Microprocesador son llamados Modos de Direccionamiento y podemos encontrar los
siguientes tipos:

1. Direccionamiento de registro
2. Direccionamiento inmediato
3. Direccionamiento directo
4. Direccionamiento indirecto mediante registro
5. Direccionamiento indirecto por registro base
6. Direccionamiento indexado
7. Direccionamiento indexado respecto a una base

El tipo de direccionamiento se determina en función de los operandos de la instrucción.


La instrucción MOV realiza transferencia de datos desde un operando origen a un
operando destino (se verá más con más detalle en los siguientes apartados). Su
formato es el siguiente:

MOV destino, origen

Universidad Nacional de Ingeniería Ing. Carlos Ortega


2
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Maquinas Computadoras I
Dept. Sist. Digitales y Telecomunicaciones
Managua, Nicaragua

DESARROLLO O PROCEDIMIENTO

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

Icon.ico
2. En el cuadro de dialogo selecciones New y luego estando seleccionada la
opción Empty Work Space hacer click en ok.

Se abrirá la pantalla de trabajo en blanco. Todo lo que está detrás de un punto y


coma (;) es considerado como comentario por el emulador. Podemos poner cuanto
comentario nos plazca haciendo uso del punto y coma de manera que ayude a
visualizar la estructura del programa y lo que hace el mismo y/o cada instrucción.

3. Agregue estas dos instrucciones:

ORG 100h

ret

La directiva ORG indica en qué dirección 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 la dirección de inicio dentro del
segmento de código donde comenzará nuestro programa es 0100h, es decir el valor
del Registro IP es cargado con el valor 100h con esta directiva. En el espacio entre
las dos instrucciones anteriores es donde siempre colocaremos nuestro programa.

4. Copie las siguientes instrucciones en orden

mov ax,0ffffh ;
mov bx,ax ;
mov dl,ah
mov dh,100
hlt

5. Luego compile y simule el programa utilizando el botón de en medio


Emulate.

Universidad Nacional de Ingeniería Ing. Carlos Ortega


3
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Maquinas Computadoras I
Dept. Sist. Digitales y Telecomunicaciones
Managua, Nicaragua

6. Observe la pantalla del simulador y la pantalla del programa fuente que se


está simulando.

7. Observe los registros principales del microcomputador 8086. También 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.

8. Corra el programa paso a paso (single step) y observe cómo cambian los
registros. ¿Qué registros se vieron afectados al finalizar toda la simulación?

9. ¿Cómo cambia el registro IP y a que se debe este cambio?

10. ¿Qué tipo de direccionamientos se identificó con las instrucciones


anteriores?

Actividad #2

11. 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
mov cx,[bx]
hlt

12. Observe nuevamente como cambian los registros y las direcciones de


memoria afectadas utilizando la ventana Extended Value Viewer del menú View.
Anote los
bytes de cada instrucción y sume en total el número de bytes que contiene el

Universidad Nacional de Ingeniería Ing. Carlos Ortega


4
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Maquinas Computadoras I
Dept. Sist. Digitales y Telecomunicaciones
Managua, Nicaragua

programa. Anote en una tabla como la siguiente los cambios ocurridos en los
registros.

Universidad Nacional de Ingeniería Ing. Carlos Ortega


5
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Maquinas Computadoras I
Dept. Sist. Digitales y Telecomunicaciones
Managua, Nicaragua

13. Para cada instrucción diga el tipo de direccionamiento usado.

Actividad #3

14. En los diferentes tipos de direccionamiento, también 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 tamaño de un byte y es el
que sigue a continuación y dw indica que el valor de esa variable es del tamaño de
una palabra y es la que sigue a continuación. Por ejemplo, copie las siguientes
instrucciones en el simulador.

mov al,var2
mov ah,30h
mov bx,var1
mov ch,var2
ret

var1 dw 3354h
var2 db 77h

15. ¿Cuál es la diferencia entre utilizar el modo de direccionamiento


inmediato con un dato directamente o con una variable que contiene ese dato?

Trabajo A Entregar

1. Respuestas de las preguntas realizadas en la guía de laboratorio.


2. Investigue cual es el objetivo de las instrucciones hlt, ret y end.
3. Realizar dos ejemplos de cada modo de direccionamiento existente.

Universidad Nacional de Ingeniería Ing. Carlos Ortega


6

Potrebbero piacerti anche