Instructieset en assembly

Welke werking van de RISC-V-instructie „jal ra, func” is juist?

  1. ASlaat het adres van de volgende instructie op in ra en springt daarna naar func
  2. BPlaatst alleen het adres van func in ra en springt niet
  3. CKeert terug naar het adres in ra
Antwoord en toelichting tonen

Antwoord: A. Slaat het adres van de volgende instructie op in ra en springt daarna naar func

jal (jump and link) schrijft het adres van de eigen volgende instructie (PC+4) naar het opgegeven register (link) en springt naar het doeladres. In de aanroepconventie komt het terugkeeradres in ra (x1), dus een functie-aanroep is „jal ra, func”, en als pseudo-instructie wordt „call func” geschreven. De aangeroepen functie keert aan het eind terug naar het adres in ra. Als de bestemming x0 is, is het een gewone sprong.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Instructieset en assembly

  1. Als welke instructie wordt de RISC-V-pseudo-instructie „ret” in werkelijkheid uitgevoerd?
  2. Wat is het belangrijkste doel van het vastleggen van een aanroepconventie (calling convention)?
  3. Welke registers worden in de standaard RISC-V-aanroepconventie gebruikt om gehele-getalargumenten en retourwaarden door te geven?
  4. Waar worden in de standaard RISC-V-aanroepconventie het 9e en 10e argument doorgegeven bij het aanroepen van een functie met 10 gehele-getalargumenten?
  5. Wat betekent het dat s0 tot s11 in de RISC-V-aanroepconventie „callee-saved”-registers zijn?