Befehlssatz und Assembler

Was ist der Hauptzweck der C-Erweiterung (komprimierte Befehle) von RISC-V?

  1. ABefehle hinzuzufügen, die Daten komprimieren und den Speicherbedarf verringern
  2. BC-Programme direkt ausführbar zu machen
  3. CHäufig benutzte Befehle mit 16 Bit darzustellen und so die Programmgröße zu verringern
Antwort und Erläuterung anzeigen

Antwort: C. Häufig benutzte Befehle mit 16 Bit darzustellen und so die Programmgröße zu verringern

Die C-Erweiterung stellt häufig benutzte Befehle in einer auf kurze Formen beschränkten 16-Bit-Darstellung dar, z. B. „addi sp, sp, -16“ und lw/sw mit kleinen Offsets. Sie lässt sich mit 32-Bit-Befehlen mischen, und die Codegröße sinkt um etwa 25 bis 30 %. Kleinere Programme passen leichter in begrenzten Flash-Speicher und lassen sich zahlreicher im Befehls-Cache halten, was sowohl in eingebetteten Geräten als auch in Hochleistungs-CPUs nützt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Befehlssatz und Assembler

  1. Was geschieht im Allgemeinen, wenn „a * b“ (Multiplikation zweier int) in C für eine RV32I-CPU ohne M-Erweiterung kompiliert wird?
  2. Welche Aussage zum Branch Delay Slot (Regel, dass der Befehl unmittelbar nach einem Verzweigungsbefehl unabhängig davon ausgeführt wird, ob verzweigt wird), wie er beim früheren MIPS u. a. bestand, ist richtig?
  3. Wie wird der gelesene 32-Bit-Wert in das 64-Bit-Register eingetragen, wenn bei RV64I der Befehl lw ausgeführt wird?
  4. Welche Beschreibung des ABI (Application Binary Interface) ist richtig?
  5. Mit welchem Befehl erfolgt in RISC-V im Allgemeinen ein Aufruf über einen C-Funktionszeiger „(*fp)(x)“?