Befehlssatz und Assembler

Der bedingte Verzweigungsbefehl von RISC-V (B-Format) gibt den Abstand zum Ziel als vorzeichenbehaftete 13-Bit-Bytezahl an, deren niedrigstes Bit stets 0 ist und nicht in den Befehl aufgenommen wird. Welcher Bereich wird von einem Verzweigungsbefehl direkt erreicht?

  1. AEtwa 4 KiB vor und zurück vom Verzweigungsbefehl
  2. BEtwa 1 MiB vor und zurück vom Verzweigungsbefehl
  3. CJede Stelle im gesamten Speicher
Antwort und Erläuterung anzeigen

Antwort: A. Etwa 4 KiB vor und zurück vom Verzweigungsbefehl

Ein vorzeichenbehafteter 13-Bit-Wert kann −4096 bis +4095 darstellen, aber da Befehle in Einheiten von 2 Byte liegen, ist das niedrigste Bit stets 0, und der Bereich beträgt −4096 bis +4094 Byte. Durch Weglassen des niedrigsten Bits erreicht dasselbe Feld den doppelten Bereich. Weitere Verzweigungen schreibt der Assembler so um, dass eine kurze Verzweigung mit umgekehrter Bedingung über ein weiter reichendes jal (etwa ±1 MiB) springt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Befehlssatz und Assembler

  1. Welche Wirkung hat der RISC-V-Befehl „jal ra, func“?
  2. Als welcher Befehl wird der RISC-V-Pseudobefehl „ret“ tatsächlich ausgeführt?
  3. Was ist der Hauptzweck der Festlegung einer Aufrufkonvention (Calling Convention)?
  4. Welche Register werden in der Standard-Aufrufkonvention von RISC-V zur Übergabe von Ganzzahlargumenten und Rückgabewerten verwendet?
  5. Wo werden das 9. und 10. Argument übergeben, wenn in der Standard-Aufrufkonvention von RISC-V eine Funktion mit 10 Ganzzahlargumenten aufgerufen wird?