Reporte Lab1 Maquinas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I

GUIA DE LABORATORIO 1: INTRODUCCIÓN AL SIMULADOR EMU8086

Datos de la práctica

Carrera Ingeniería Electrónica

Tipo de Práctica Simulación Fecha 16 – 04 – 24


Asignatura Maquinas Computadoras I
Nombre del Profesor Marlovio Jose Sevilla Hernandez
Jorge Luis Saballos Leon
Nombre del Alumno
Jeremmy Moises Sanchez Campos

OBJETIVOS
 Practicar el uso del emulador emu8086 para simulación de programación
en lenguaje ensamblador.
 Conocer las bases para hacer un programa en ensamblador.
 Conocer los principales registros del microprocesador 8086.
 Comprobar el funcionamiento de la instrucción MOV y la directiva ORG.

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:

1
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I
ORG 100h
Donde: COM: significa que vamos a trabajar con un archivo tipo .com, que es el
formato más simple de un archivo ejecutable. Para leer un poco más sobres
esto, lea el tutorial. Cuando trabajamos con un archivo de este tipo tenemos
que usar la directiva ORG que 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 el
origen es el 0100h dentro del segmento de código.
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 botón de la derecha
Compile and Emulate.
5. Para este programa en particular se verá un error de compilación, por
lo tanto no podrá ser simulado. Observe qué tipo de error es y
repárelo sustituyendo en la línea de error el valor correcto.

2
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I
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. 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.

3
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I
9. Corra el programa paso a paso (single step) y observe cómo cambian
los registros.
10. ¿Cómo cambia el registro IP?

4
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I

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


R= CX no se carga con ningun valor y por eso mismo no cambia en ningun
momento

12. ¿Cuántos bytes tiene la primera instrucción? ¿Cuántos bytes tiene la


segunda instrucción? ¿Cuántos bytes en total tiene el programa?
Puede guardar el programa si lo desea.
Primera: es de 3bytes
Segunda: es de 4bytes

El programa contiene un total de 11 bytes

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
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 instrucción y sume en total el número de
bytes que contiene el programa. Anote en una tabla como la siguiente
los cambios ocurridos en los registros.

Instrucción IP AX BX CX [6230] [6231] [6232] [6233]


Valores iniciales 0100 0000 0000 0011 0000 0000 0000 0000
Mov ah,’b’ 0102 6200 0000 0011 0000 0000 0000 0000
Mov al,30h 0104 6230 0000 0011 0000 0000 0000 0000
Mov bx,ax 0106 6230 6230 0011 0000 0000 0000 0000
Mov [bx],33h 0109 6230 6230 0011 0000 0000 0000 0000
Mov [bx+2],33h 010D 6230 6230 0011 0000 0000 0000 0000
Mov cx,[bx] 010F 6230 6230 0033 0000 0000 0000 0000
hlt 010F 6230 6230 0033 0000 0000 0000 0000

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

mov ah,'b' Direccioniamiento inmediato con dato


mov al,30h Direccionamiento inmediato con dato
mov bx,ax Direccionamiento inmediato con variable
mov [bx],33h Direccionamiento con dato
mov [bx+2],33h Direccionamiento con dato
mov cx,[bx] Direccionamiento con variable

5
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I
16. 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 byte que sigue a continuación y dw indica que el
valor de esa variable es de la palabra 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

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


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

Modo de direccionamiento inmediato con un dato directamente:


Aquí, el dato se proporciona directamente en la instrucción de ensamblador. Es
útil cuando se necesita trabajar con valores fijos y conocidos durante el tiempo
de codificación. Sin embargo, si el valor necesita ser modificado, el código
debe ser editado manualmente.

Modo de direccionamiento inmediato con una variable que contiene ese dato:
Aquí, en lugar de proporcionar el valor directamente en la instrucción de
ensamblador, se utiliza una variable que contiene ese valor. Esta técnica
proporciona una mayor flexibilidad ya que el valor de la variable puede
6
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I
cambiarse sin modificar el código fuente de la instrucción. Además, permite la
reutilización del mismo valor en múltiples partes del programa sin necesidad de
duplicar el código, lo cual permite trabajar de forma mas eficientes con codigos
mas largos y complejos.

18. Investigue las instrucciones hlt, ret y end.

HLT (Halt):
· La instrucción HLT es utilizada en lenguaje ensamblador para detener la
ejecución de un programa en una CPU x86.
· Cuando se ejecuta la instrucción HLT, la CPU entra en un estado de
espera hasta que se recibe una interrupción externa (por ejemplo, una
interrupción de hardware).
· Es útil para detener la ejecución de un programa cuando se alcanza cierto
punto o condición específica.
RET (Return):
· La instrucción RET se utiliza en lenguaje ensamblador para devolver el
control a la instrucción de llamada de una subrutina o función.
· Cuando se ejecuta la instrucción RET, la dirección de retorno se toma de
la pila y se carga en el puntero de instrucción (IP o EIP, dependiendo del
modo de direccionamiento utilizado).
· Es esencial para el funcionamiento de las subrutinas y funciones en
lenguaje ensamblador, ya que permite que el flujo de ejecución del
programa vuelva al punto de origen después de completar una tarea
específica.
END:
· La instrucción END es una directiva de ensamblador que marca el final del
código fuente en un archivo de código ensamblador.
· No es una instrucción de máquina, sino una directiva para el ensamblador
que indica que no hay más código que ensamblar.
· Es comúnmente utilizada en ensambladores para indicar el final del
programa fuente y puede ir seguida de comentarios o directivas
adicionales específicas del ensamblador.

En resumen, HLT se utiliza para detener la ejecución de un programa, RET


para retornar de una subrutina o función, y END para marcar el final del código
fuente en un archivo de ensamblador. Estas instrucciones son fundamentales
en la programación en lenguaje ensamblador para controlar el flujo de
ejecución y la finalización del programa.

7
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I
19. Entregue un reporte de esta práctica de laboratorio una semana después
de haberla realizado, conteste a todas las preguntas incluidas en la guía,
añada conclusiones.

Conclusiones:

En esta practica de laboratorio empezamos a usar de forma basica el programa


emu8086, asi como aprendimos ciertos atajos que nos muestran de forma mas
directa los cambios que ocurren en las simulaciones. Asi como las
inevstigaciones hechas despues de la practica, nos han ayudado a aprender y
comprender mas sobre el funcionamiento del programa y el lenguaje
ensamblador.

Haciendo uso de instrucciones basicas como mover datos directamente a una


variables, o los datos de una variable a otra.

8
Prof: Melania Solís

También podría gustarte