Befehlssatz und Assembler

Wie wird beim RISC-V-Verzweigungsbefehl „beq a0, a1, label“ die Adresse des Sprungziels label dargestellt?

  1. ADie Zieladresse selbst (32 Bit) steht im Befehl
  2. BIm Befehl steht der Abstand von der Adresse (PC) des Verzweigungsbefehls selbst
  3. CDie Zieladresse muss vorher im Register a1 stehen
Antwort und Erläuterung anzeigen

Antwort: B. Im Befehl steht der Abstand von der Adresse (PC) des Verzweigungsbefehls selbst

RISC-V-Verzweigungsbefehle geben das Ziel als vorzeichenbehafteten Abstand an, nämlich „wie viele Byte von der aktuellen Befehlsadresse (PC) entfernt“. Das heißt PC-relative Adressierung. Da das Ziel meist nahe liegt, genügt ein kurzer Abstand, der in den 32-Bit-Befehl passt. Ein weiterer Vorteil: Wird das ganze Programm an eine andere Adresse gelegt, ändert sich der Abstand nicht, und es läuft ohne Umschreiben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Befehlssatz und Assembler

  1. Welcher Vorteil der PC-relativen Adressierung bei Verzweigungen und Sprüngen ist richtig?
  2. Welche Aussage zur Befehlslänge der RISC-V-Basisbefehle und der x86-Befehle ist richtig?
  3. Welcher Vorteil fester Befehlslänge ist am zutreffendsten?
  4. In RISC-V-Befehlen sind die Felder zur Registerangabe (rd, rs1, rs2) jeweils 5 Bit lang. Welche Begründung ist richtig?
  5. Das Immediate des RISC-V-Befehls addi ist eine vorzeichenbehaftete 12-Bit-Ganzzahl. Welcher Bereich lässt sich damit darstellen?