Skip to content

Simulador RARS, para procesadores RISC V

Juan Gonzalez-Gomez edited this page Jan 24, 2019 · 24 revisions

Contenido

Introducción

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

Arrancando el simulador RARS

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

Ejecución en los laboratorios LINUX de la ETSI de Telecomunicación de la URJC

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

Instalación en Ubuntu 18.04

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! :-)

Probando un programa hola mundo

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

Reto 1: Modificar el texto a imprimir

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

Autores

Licencia

Enlaces

Página principal


Sesiones de Prácticas

Práctica 1: Simulador RARs

L1: Práctica 1-1. Rars
L2: Práctica 1-2. Ensamblador
L3: Práctica 1-3. Formato

Práctica 2: Llamadas al sistema

L4: Práctica 2-1
L5: Práctica 2-2. Datos

Práctica 3: Bucles. Saltos Condicionales

L6: Práctica 3-1
L7: Práctica 3-2

Práctica 4: LLamada a subrutina

L8: Práctica 4-1
L9: Práctica 4-2. Pila
L10: Práctica 4-3. Recursividad

Práctica 5: Memoria dinámica

L11: Práctica 5

Ejercicios

Ejercicios I
Solución examen Abril-2019
Solución examen Junio-2019

Exámenes

  • 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

Material de apoyo

Simulador RARS

Clone this wiki locally