Befehlssatz und Assembler

Welche Wirkung hat der RISC-V-Befehl „slt t0, a0, a1“?

  1. Aa0 wird um a1 Bit nach links verschoben und in t0 abgelegt
  2. BIst a0 kleiner als a1, wird zur Adresse t0 verzweigt
  3. CIst a0 kleiner als a1, wird in t0 eine 1 geschrieben, sonst eine 0
Antwort und Erläuterung anzeigen

Antwort: C. Ist a0 kleiner als a1, wird in t0 eine 1 geschrieben, sonst eine 0

slt (set less than) vergleicht zwei Register als vorzeichenbehaftete Ganzzahlen und schreibt 1, wenn kleiner, sonst 0. Es gibt auch sltu für den vorzeichenlosen Vergleich und slti für den Vergleich mit einem Immediate. Verwendet wird es, wenn das Vergleichsergebnis als Wert gebraucht wird, etwa bei „x = (a < b);“ in C, oder um Bedingungen ohne Verzweigung durch Rechnung auszudrücken. Verschieben (sll) und Verzweigen (blt) sind andere Befehle.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Befehlssatz und Assembler

  1. Welchen Wert hat t0, wenn der obige RISC-V-Code ausgeführt wurde?
  2. Der bedingte Verzweigungsbefehl von RISC-V (B-Format) gibt den Abstand zum Ziel als vorzeichenbehaftete 13-Bit-Bytezahl an, deren niedrigstes Bit stets 0 ist und nicht in den Befehl aufgenommen wird. Welcher Bereich wird von einem Verzweigungsbefehl direkt erreicht?
  3. Welche Wirkung hat der RISC-V-Befehl „jal ra, func“?
  4. Als welcher Befehl wird der RISC-V-Pseudobefehl „ret“ tatsächlich ausgeführt?
  5. Was ist der Hauptzweck der Festlegung einer Aufrufkonvention (Calling Convention)?