Befehlssatz und Assembler

Welche Aussage zur Befehlslänge der RISC-V-Basisbefehle und der x86-Befehle ist richtig?

  1. ABeide haben feste 32-Bit-Länge
  2. BRISC-V hat variable Länge, x86 feste 32-Bit-Länge
  3. CDie RISC-V-Basisbefehle haben feste 32-Bit-Länge, x86 variable Länge von 1 bis 15 Byte
Antwort und Erläuterung anzeigen

Antwort: C. Die RISC-V-Basisbefehle haben feste 32-Bit-Länge, x86 variable Länge von 1 bis 15 Byte

Alle RISC-V-Basisbefehle sind 32 Bit lang, sodass die Befehlsgrenzen sofort feststehen (mit der Erweiterung C für komprimierte Befehle sind 16-Bit-Befehle beigemischt). x86 reicht von 1-Byte-Befehlen bis zu Befehlen mit bis zu 15 Byte einschließlich vorangestellter Präfixe und Immediates, und der Beginn des nächsten Befehls ist erst nach dem Lesen des aktuellen bekannt. Deshalb ist bei x86 die Schaltung zum gleichzeitigen Dekodieren mehrerer Befehle aufwendig.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Befehlssatz und Assembler

  1. Welcher Vorteil fester Befehlslänge ist am zutreffendsten?
  2. In RISC-V-Befehlen sind die Felder zur Registerangabe (rd, rs1, rs2) jeweils 5 Bit lang. Welche Begründung ist richtig?
  3. Das Immediate des RISC-V-Befehls addi ist eine vorzeichenbehaftete 12-Bit-Ganzzahl. Welcher Bereich lässt sich damit darstellen?
  4. Wie wird bei RISC-V üblicherweise eine 32-Bit-Konstante (z. B. 0x12345678), die nicht in ein 12-Bit-Immediate passt, in ein Register geladen?
  5. Welche Kombination ist richtig, wenn bei RISC-V die Konstante 0x12345FFF mit den zwei Befehlen lui und addi erzeugt wird?