Befehlssatz und Assembler

Welche Eigenschaft des RISC-V-Registers x0 (zero) ist richtig?

  1. ABeim Lesen ergibt sich stets 0, und Schreiben ändert den Wert nicht
  2. BEs enthält die Rücksprungadresse einer Funktion
  3. CEs dient als Flag, das anzeigt, ob das Ergebnis der vorherigen Rechnung 0 war
Antwort und Erläuterung anzeigen

Antwort: A. Beim Lesen ergibt sich stets 0, und Schreiben ändert den Wert nicht

x0 ist ein besonderes Register, das stets 0 liefert; Schreibzugriffe werden ignoriert. Da die Konstante 0 immer verfügbar ist, ergeben sich Verwendungen wie „add rd, rs, x0“ zum Kopieren eines Werts, „addi rd, x0, 5“ zum Setzen einer Konstanten oder x0 als Ziel, wenn das Ergebnis verworfen werden soll; zusätzliche Spezialbefehle sind nicht nötig. Die Rücksprungadresse steht in x1 (ra). RISC-V hat keine Ergebnis-Flags, sondern Verzweigungsbefehle vergleichen zwei Register direkt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Befehlssatz und Assembler

  1. Welche Universal-Ganzzahlregister besitzt RISC-V RV32I (der 32-Bit-Basisbefehlssatz für Ganzzahlen)?
  2. Welche Beziehung zwischen Assemblersprache und Maschinensprache ist richtig?
  3. In welchen Befehl setzt der Assembler den RISC-V-Pseudobefehl „nop“ (tut nichts) tatsächlich um?
  4. Worin unterscheiden sich die RISC-V-Befehle „add“ und „addi“?
  5. Welchen Wert hat das Register a2 nach Ausführung des obigen RISC-V-Codes?