¿Podría alguien proporcionar un ejemplo de la utilidad de la instrucción jal cómo puede utilizarse para regresar al cuerpo principal después de completar una subrutina?Diferente entre salto y salto y enlace
saludos
¿Podría alguien proporcionar un ejemplo de la utilidad de la instrucción jal cómo puede utilizarse para regresar al cuerpo principal después de completar una subrutina?Diferente entre salto y salto y enlace
saludos
"jmp" es un "goto".
"jal" es un "GOSUB"
jal guarda la dirección de retorno en $ ra, caso de que deseen volver de donde vinieron;)
http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm
Saltar coloca una determinada dirección en el contador de programa y continúa ejecutando desde allí, sin embargo, JAL (salto y enlace) hace lo mismo pero guarda la dirección de retorno en ra para que pueda continuar la ejecución después de que termine su subrutina, es decir:
int main() {
dosomething();
//code here
}
void dosomething() {
//.....code here
}
dosomething
sería una subrutina que vuelve al bloque principal y continúa ejecutando
salto y el enlace va a hacer el salto a la rutina y almacenar el contador de programa en r31 GPR, y cuando termina la rutina MIPS utiliza 'jr r31 'para regresar de esa rutina.