Befehlssatz und Assembler
Wo werden das 9. und 10. Argument übergeben, wenn in der Standard-Aufrufkonvention von RISC-V eine Funktion mit 10 Ganzzahlargumenten aufgerufen wird?
- AIn s0 und s1
- BIn t0 und t1
- CAuf dem Stack
Antwort und Erläuterung anzeigen
Antwort: C. Auf dem Stack
Da es nur 8 Argumentregister a0 bis a7 gibt, legt die aufrufende Seite das 9. und alle weiteren Argumente auf den Stack, und die aufgerufene Seite liest sie an festen Positionen relativ zum Stackpointer. Wegen der zusätzlichen Speicherzugriffe werden Funktionen mit sehr vielen Argumenten etwas langsamer. Häufig wird versucht, die Argumentzahl klein zu halten, etwa indem große Strukturen gesammelt über einen Zeiger auf die Struktur übergeben werden.