Befehlssatz und Assembler
Wie wird beim RISC-V-Verzweigungsbefehl „beq a0, a1, label“ die Adresse des Sprungziels label dargestellt?
- ADie Zieladresse selbst (32 Bit) steht im Befehl
- BIm Befehl steht der Abstand von der Adresse (PC) des Verzweigungsbefehls selbst
- 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.