Las subrutinas aportan las siguientes ventajas:
Las subrutinas son como un pequeño programa y por lo tanto tienen una estructura como tal pero además necesita una etiqueta que identifique su entrada.
La manera de llamar a la subrutina es mediante la operación
jal etiqueta_de_entradadonde "etiqueta_de_entrada" es la dirección de la subrutina que cada una tiene la suya característica.
jal en este caso es una pseudoinstrucción que lo que hace es guardar en valor de la siguiente instrución del código en "x1" o "ra" y saltar a la posición de la etiqueta, esto hace que no se pueda alterar el valor de x1 mientras se está en la subrutina porque de acerlo no podrá volver a ella al ejecutar la instrución ret .
La estructura de un programa en RV se considera como un árbol al progrma principal se le considera el tronco y se le asocia el nivel 0 y a los que salen de el se les conoce como ramas de nivel 1, si hay subrutinas que salen de otra una de estas ramas serán ramas de nivel 2 y así sucesivamente. Por último a las subrutinas de las que no sale ninguna rama se les conoce como hojas .