docoo
Estructura subrutina
La subrutinas (también se puede interpretar como funciones, aunque hay que matizar aquí) son estructuras de código a las que se llama para realizar una tarea concreta.

Las subrutinas aportan las siguientes ventajas:

  1. Reducción de lineas de código.
  2. Más legible.
  3. Mejor mantenimiento y capacidad de modificación.

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

        #subroutina que hace .... 
        #parametros que necesita y por donde le entran 
        #parametros que devuelve y por donde
        #y si queremos tambien autor y esas cosas
        
        .data #segmento de datos 
        
        .tex #segmento de código

etiqueta_de_entrada:

        #instruciones que realiza la subroutina 
        
        ret # comando de retorno que devuelve el control al programa principal
        
    

La manera de llamar a la subrutina es mediante la operación

 jal etiqueta_de_entrada 
donde "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 .

--