Reporte Lab1 Maquinas
Reporte Lab1 Maquinas
Reporte Lab1 Maquinas
ARQUITECTURA DE MAQUINAS I
Datos de la práctica
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
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.
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
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
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.
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.
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:
8
Prof: Melania Solís