martes, 8 de enero de 2013

PRÁCTICA 5 - Simula 3M

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.

Adjunto pdf original para su consulta offline.

No hay comentarios:

Publicar un comentario