Para
esta práctica tendremos que saber utilizar el simulador Simula3M, este programa
sirve para ejecutar programas en lenguaje ensamblador para los procesadores
MIPS.
El
objetivo de la práctica es recordar los detalles de la programación en lenguaje
ensamblador y poder aplicarlos en diferentes entornos.
•Desarrollo de la práctica:
1º
Lo primero que tendríamos que hacer en esta practica seria leer el manual al
completo de todo el programa para saber como manejarlo y hacer los ejercicios
que tenemos que realizar posteriormente. Lo más importante a prestar atención
seria el botón de nuevo, abrir, guardar, ensamblar y ejecutar.
2º
Para realizar el segundo ejercicio tendremos que ejecutar código del ejercicio2
que viene junto al software. Para ello tendremos que cargar el fichero, darle a
ensamblar y si no tiene errores al botón de ejecutar.
El
programa contiene un código que define dos números enteros y reserva el espacio
para almacenar el resultado de sumar ambos números. Después se leen desde
memoria y se guardan en los registros para poder operar con ellos, se suman y
por ultimo se guardan en el espacio reservado para ello.
3º
Después de cargarlo y entender lo que hace el código, procederemos a pulsar en
el botón de ensamblar, y si no ha dado ningún fallo pulsaremos el botón de
ejecutar.
4º
Después de haberle dado al botón de ejecutar la pantalla cambiara y nos
presentara una pantalla como la de la imagen inferior, donde podemos ver el
estado de los registros, segmentos de datos y las instrucciones escritas en el
programa.
Una
vez hallamos identificado todas las partes tendremos que ir pulsando sobre
ciclo siguiente hasta que lleguemos a la ultima orden anotando todos los
cambios que se van produciendo en los diferentes registros.
5º
Cuando hayamos terminado podremos cargar otro programa de ejemplo diferente que
se llama ejercicio6 y luego explicar su funcionamiento.
El
programa que contiene el fichero define un vector llamado “array_word” con 4
elementos, al principio del programa se guarda la dirección del vector en el
registro $t1 y luego se va cargando cada elemento en el registro $s0 hasta $s3.
Como los valores del vector son de tipo palabra hay que ir desplazando el
índice 4 bytes.
Además
de la explicación tendrá que rellenar la siguiente tabla con los datos que se
le piden.
Contenido del segmento de datos de memoria al inicio
de la ejecución:
0x10010000: __________________________
0x10010004: __________________________
0x10010008: __________________________
0x1001000c: __________________________
Contenido del registro t1 antes de la ejecución:
t1:_______________________________
Valor del registro PC antes de la ejecución:
PC:________________________
Contenido del registro t1 después de la ejecución:
t1:_______________________________
Contenido de los registros siguientes al término de
la ejecución:
s0:________________________
s1:________________________
s2:________________________
Valor del registro PC al término de la ejecución:
PC:________________________
6º Una vez rellenado todos los campos que se piden en el ejercicio anterior
aremos una prueba para comprobar que nos acordamos de como se ejecutaban
ordenes para pedir una entrada de teclado o como mostrar un resultado.
Para ello cargaremos el programa llamado ejercicio7 y veremos como se
pueden hacer llamadas al sistema.
7º Después de recordar como se hacen las llamadas al sistema tenemos que
crear un programa que solicite por teclado tres valores enteros, los almacene
en memoria en un vector que llamaremos “vector” (el cual ya tendrá el espacio
reservado para cuatro palabras de memorio,3 para los números y otro para el
resultado). Después efectuara la suma de los 3 valores, lo guardara en el
vector y lo mostrara por pantalla.
Una posible solución es la que se puede encontrar en el fichero ejercicio8.
No hay comentarios:
Publicar un comentario