Befehlssatz und Assembler
Welcher Vorteil der PC-relativen Adressierung bei Verzweigungen und Sprüngen ist richtig?
- AEgal wie weit das Ziel entfernt ist, wird es stets mit einem Befehl erreicht
- BEine Sprungvorhersage ist nicht mehr nötig, und die Pipeline bleibt nie stehen
- CDas Programm kann an jede beliebige Speicheradresse geladen und ohne Umschreiben der Befehle ausgeführt werden
Antwort und Erläuterung anzeigen
Antwort: C. Das Programm kann an jede beliebige Speicheradresse geladen und ohne Umschreiben der Befehle ausgeführt werden
PC-relative Verzweigungen geben das Ziel als Abstand „so viele Byte von hier“ an; wird das ganze Programm verschoben, bleibt der Abstand gleich, und es läuft unverändert. Dies ist die Grundlage für positionsunabhängigen Code (PIC), wie er z. B. in Shared Libraries verwendet wird. Da die Zahl der Bits für den Abstand begrenzt ist, werden für weite Sprünge auipc und jalr kombiniert. Der Bedarf an Sprungvorhersage hat mit der Darstellung nichts zu tun.