Befehlssatz und Assembler
In welchen Befehl setzt der Assembler den RISC-V-Pseudobefehl „nop“ (tut nichts) tatsächlich um?
- Aaddi x0, x0, 0
- Bjal ra, 0
- Clw x0, 0(sp)
Antwort und Erläuterung anzeigen
Antwort: A. addi x0, x0, 0
RISC-V hat keinen eigenen Befehl für „nichts tun“, nop wird als „addi x0, x0, 0“ dargestellt. Da Schreibzugriffe auf x0 verworfen werden, ändert sich weder in Registern noch im Speicher etwas. Entsprechend ist „mv rd, rs“ gleich „addi rd, rs, 0“, „j label“ gleich „jal x0, label“ und „ret“ gleich „jalr x0, 0(ra)“. Der Gedanke im Entwurf von RISC-V ist, durch Nutzung von x0 die Zahl der Befehlsarten klein zu halten.