-
Notifications
You must be signed in to change notification settings - Fork 0
Simulador RARS, para procesadores RISC V


- Introducción
- Arrancando el simulador RARS
- Probando un programa hola mundo
- Reto 1: Modificar el texto a imprimir
- Autores
- Licencia
- Enlaces
En esta asignatura trabajaremos con el procesador RISC-V, aprendiendo a programarlo en ensamblador para comprender su arquitectura interna
Los programas los ejecutaremos en el simulador RARS, que es libre y multiplataforma
El simulador RARS es libre y multiplataforma (Linux, Max, Windows). Sólo hay que instalar la máquina virtual de Java 10, descargar el RARS y ejecutarlo
En los laboratorios de Linux de la ETSIT de la URJC ya está todo listo para ejecutar el entorno RARS. Sólo tienes que entrar en tu cuenta, pinchar en la parte superior en Activities, teclear rars y ejecutarlo:

Nos aparecerá una pantalla como la siguiente

Sigue los siguientes pasos:
- Instala Java 10. Desde un terminal ejecuta:
sudo apt-get install default-jdk
-
Descarga el fichero rars.jar, que tiene la versión 1.1 del RARS
-
Dar permisos de ejecución al fichero rars.jar y hacer doble click. Aparecerá la ventana principal del simulador

- Otra posibilidad es ejecutarlo desde la terminal, mediante este comando:
java -jar rars.jar
¡Ya tenemos el entorno listo para aprender RISC-V! :-)
Arrancamos el simulador. Todavía NO lo sabemos manejar, ni sabemos nada del procesador MIPS, pero vamos a ejecutar nuestro primer programa para comprobar que todo está funcionando, y familiarizarnos un poco con el entorno
- Paso 1: Descargar el fichero en ensamblador con el programa hola mundo: hola_mundo.asm (Pulsar el botón derecho y la opción "Save Link as...")
El programa es este:
#-- Programa hola mundo en RISC-V
#-- Esto son comentarios
.data
str: .asciz "Hola mundo en RISC-V!\n"
.text
main:
la a0, str
li a7, 4
ecall
li a7, 10
ecall
- Paso 2: Abrir el fichero desde el entorno
Usando la opción File/Open abrimos el fichero hola_mundo.asm

- Paso 3: Ensamblamos el programa
Esta acción analiza el programa en ensamblador y genera el código máquina. Esto ya lo veremos, pero el código máquina es el verdadero programa que entiende el procesador, y que se almacena en memoria
Para ensamblar pinchamos en la herramienta Assemble. Si todo ha ido bien, y el programa no tiene errores de sintáxis, se nos cambia automáticamente a la pestaña Execute donde podemos ver el contenido de la memoria (aunque ahora no entendemos nada todavía)

Podemos volver a la pestaña donde estaba nuestro programa original pinchando en Edit. En la consola en la parte inferior nos aparece un mensaje indicando que el ensamblado se ha realizado correctamente:
Assemble: operation completed successfully.
- Paso 4: Ejecutar el programa
Para ejecutar el programa pinchamos en el botón de Run en la parte superior. En la parte inferior nos aparecen dos mensajes, uno que lo ha generado nuestro programa, y otro del simulador indicando que el programa se ha terminado de ejecutar

Sí, efectivamente, este programa Hola mundo saca por pantalla la cadena:
Hola mundo en RISC-V!
¡Hemos ejecutado nuestro primer programa en el procesador RISC-V!
- Paso 5: Volver a ejecutar el programa
Normalmente, para probar nuestros programas tendremos que ejecutarlos varias veces. Para volver a ejecutarlo borramos la consola inferior (opcional) pulsando el botón Clear. A continuación pinchamos en el botón RESET MIPS, en la parte superior, y volvemos a ejecutar el programa como en el paso anterior

¿Serás capaz de modificar el programa hola mundo para que saque por pantalla otra cadena diferente en vez de la actual?

- Juan González-Gómez (Obijuan)
- Katia Leal Algara


L1: Práctica 1-1. Rars
L2: Práctica 1-2. Ensamblador
L3: Práctica 1-3. Formato
L4: Práctica 2-1
L5: Práctica 2-2. Datos
L6: Práctica 3-1
L7: Práctica 3-2
L8: Práctica 4-1
L9: Práctica 4-2. Pila
L10: Práctica 4-3. Recursividad
Ejercicios I
Solución examen Abril-2019
Solución examen Junio-2019
- Ordinario (Lab): 26-Abril-2019. L3.202/3. 11-13h
- Ordinario (Teoría): 6-Mayo-2019. L3.210. 9h - 12h
- Final (Teoría y Lab): 18-Junio-2019. L3.210. 9h-11h Teoría. 11-13h Práctica