Práctica 5



PRÁCTICA 5: simula3ms (1)

- Por Alberto Roldán -


Para la realización de ésta práctica utilizaremos:




Recordemos que el lenguaje ensamblador es un lenguaje de programación de bajo nivel. Implementa una representación simbólica de los códigos de máquina binarios, ademas de otras constantes necesarias para programar una arquitectura, y constituye la representación mas directa del código máquina específico para cada arquitectura  legible por un programador.

Para llevar acabo la practica usaremos el simulador Simula3M que como apunta el guión del practica implementa un subconjunto de instrucciones basadas en el repertorio de instrucciones del procesador MIPS R2000/R3000.


1. El primer punto de la practica nos insta a utilizar el manual del simulador Simula3M en caso de tener cualquier duda al respecto de éste entorno de simulación. Recordamos que pueden descargar el manual desde ésta misma página.

2. En el segundo ejercicio debemos copiar el programa de ejemplo que aparece en el guión de la práctica. De ésta manera nos habituamos a usar el editor del simulador.





3. En el tercer ejercicio tendremos que comprobar si se produce algún error al ensamblar nuestro programa. Éste error puede ser debido a una mala copia del programa de ejemplo.








Una vez que hemos descrito nuestro programa, el siguiente paso será ensamblarlo, para ello pulsaremos el botón "Ensamblar", lo cual dará lugar a dos posibles acciones: 

  • Si el código no tiene errores: Se activará el botón "Ejecutar" y podremos simular nuestro programa
  • Si el código contiene errores: Aparecerán todos ellos en el "Cuadro de errores" y se remarcará sobre nuestro código el primer error. Es posible remarcar el resto de errores (En caso de existir) pulsando el botón "Error siguiente".

4. Una vez que nuestro código no contenga errores podremos pulsar el botón "Ejecutar" y pasar al siguiente apartado de la práctica. En él se nos pide precisamente éso, que ejecutemos nuestro código, lo cual nos permitirá pasar al simulador en sí, donde podremos seguir la evolución de los segmentos de datos, así como de los registros y del resto de elementos de la ventana de ejecución.





5. En éste apartado se nos pide que ejecutemos paso a paso el programa, haciendo uso del botón "Ciclo siguiente". Al hacerlo se destacará en color azul la instrucción en curso, en la sección de segmento de texto. Deberemos apuntar los cambios que se produzcan, el resultado puede observarse a continuación:







6. A continuación deberemos escribir un nuevo código proporcionado por el guión de la práctica, explicar el correcto funcionamiento del programa y comprobar de nuevo los diversos cambios que se producirán después de ejecutarlo.


Lo primero que realiza el código es cargar la constante 0x1001, a continuación se realiza una operación OR entre $t1 y la constante 0x0000, ahora vuelve a realizar éstas dos operaciones con $t1, a continuación realiza de nuevo, éstas operaciones pero con $t2. Las siguientes dos operaciones cargan en $s0 y $s1 la palabra almacenada en la dirección de memoria que contienen los registros $t0 y $t1 respectivamente mas su desplazamiento. Después realiza una operación de suma, almacenando en $s2 el valor de sumar $s1 y $s0. La última operación que realiza es almacenar en memoria la posición obtenida de sumar el desplazamiento a $t2, la palabra del registro $s2.

A continuación ofrezco los valores de diversos registros antes y después de su ejecución:


7. El penúltimo apartado trata de enseñarnos como realizar llamadas al sistema con el simulador Simula3M, para ello se nos proporciona un nuevo código que deberemos escribir en el editor del simulador, ensamblarlo y ejecutarlo para comprobar sus resultados.




8. Por último, se nos pide que "construyamos" por nosotros mismos un programa que solicite por teclado tres valores enteros y los almacene en memoria e un vector llamado "vector" para el que previamente se habrán reservado cuatro palabras de memoria, tres para los enteros introducidos y un cuarto para guardar el resultado final. Se debe completar el programa sumando los elementos del vector construido y mostrándolo por pantalla.




En definitiva, la practica 5 es bajo mi punto de vista, bastante sencilla, sobretodo gracias al uso del Manual del simulador y del guión, el cual ayuda bastante a la resolución de la practica. Se basa principalmente en copiar diferentes ejercicios del guión y tomar datos del simulador, quizás el único apartado con mas dificultad sea el último, puesto que nos deja la libertad de crear nosotros mismos el programa por lo que no encuentro manera de mejorar lo existente.

No hay comentarios:

Publicar un comentario