MIPS

di il
4 risposte

MIPS

Ciao, ancora me.

potrei sapere qual è la differenza tra jr(jump register) e jal(jump and link) . leggendo non riesco a capire lo scopo giusto o come funzionano esatamente questi due istruzioni.
so che jr $ra esegue un salto al programma chiamante quindi "ritorno a capo'' se non sbaglio , però per jal non riesco a capire bene.
se qualcuno mi può aiutare a capirlo bene , sarebbe un piaccere, grazie in anticipo

4 Risposte

  • Re: MIPS

    Entrambe sono istruzioni di tipo-J.
    jr (jump register) = salta all'indrizzo contenuto nel registro
    jal (jump and link) = salta all'indirizzo fornitogli tramite una label o in exa e salva nel registro $ra l'indirizzo del PC+4, ovvero l'indirizzo dell'istruzione successiva.
    Le due istruzioni lavorano quasi sempre insieme, basta pensare quando hai bisogno di chiamare una procedura o meglio procedure ricorsive.
    Quando chiamo una procedura tramire il jal salvo l'indirizzo dell'istruzione successiva, cioè PC+4,
    così arrivato al termine della mia procedura per ritornare all'istruzione successiva del chiamante utilizzerò jr $ra.
    Spero di esserti stato di aiuto.
  • Re: MIPS

    Si , sei stato di un grand aiuto , grazie mille
    un ultima cosa , il PC+4 è l'indirizzo del program counter +4 ?
  • Re: MIPS

    Il PC scandisce sequenzialmente gli indirizzi incrementandosi ogni volta di 4 (salti esclusi).
    Quindi sì, PC+4 significa che sto incrementando di 4 l'indirizzo precedente.
    L'incrementarsi di 4 ogni volta è dovuto al principio fondamentale dell'allineamento della memoria.
  • Re: MIPS

    Non so come ringraziarti . Sei stato molto chiaro
Devi accedere o registrarti per scrivere nel forum
4 risposte