Qualcuno potrebbe fornire un esempio dell'utilità dell'istruzione jal come può essere utilizzato per tornare al corpo principale dopo aver completato una subroutine?Differenti tra salta e salta e collegamento
saluti
Qualcuno potrebbe fornire un esempio dell'utilità dell'istruzione jal come può essere utilizzato per tornare al corpo principale dopo aver completato una subroutine?Differenti tra salta e salta e collegamento
saluti
"jmp" è un "goto".
"JAL" è un "GOSUB"
JAL salva l'indirizzo di ritorno in $ ra, se desiderate tornare da dove siete venuti;)
http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm
salto pone un certo indirizzo nel contatore del programma e continua l'esecuzione da lì, tuttavia, JAL (salta e collega) fa lo stesso ma salva l'indirizzo di ritorno in ra in modo da poter continuare l'esecuzione dopo aver terminato la subroutine:
int main() {
dosomething();
//code here
}
void dosomething() {
//.....code here
}
dosomething
sarebbe una subroutine che restituisce al blocco principale e continua ad eseguire
salto e collegamento farà il salto alla routine e memorizzare il contatore di programma in R31 GPR, e quando le finiture di routine MIPS utilizza 'jr R31 'per tornare da quella routine.