csrcPseudoelement

csrc

Pseudoelement
RISC-V Assembler Referenz

lyszt.net behandelt csrc und andere RISC-V-Befehle ausführlicher.

Beschreibung

csrc löscht Bits in einem Steuerregister. Ein Steuer- und Statusregister, oder CSR, enthält den Prozessorzustand wie die Adresse des Trap-Handlers und die Interrupt-Schalter (siehe csrrw). Die folgende Form löscht jedes Bit des CSR, das in rs 1 ist, und lässt die übrigen Bits unverändert.

csrc csr, rs

Es ist eine Pseudoinstruktion, ein lesbarer Name, den der Assembler in eine echte Instruktion umschreibt. Sie wird zur untenstehenden Instruktion, wobei rd zero ist, sodass der alte Wert verworfen wird.

csrrc zero, csr, rs

Die folgenden Zeilen löschen Bit 3 von mstatus, was die globale Interrupt-Freigabe ausschaltet.

li t0, 8
csrc mstatus, t0

Der Prozessor löscht dieses Bit selbst, wenn ein Trap beginnt, und mret stellt es wieder her, sodass ein Handler es selten braucht. Ein Programm verwendet csrc, um einen kurzen Codeabschnitt vor Interrupts zu schützen, und setzt das Bit anschließend mit csrs wieder.

Wird erweitert zu

csrrc zero, csr, rs

Der Assembler ersetzt diese Pseudoanweisung durch die oben aufgeführte(n) echte(n) Anweisung(en).

Beispiel

li t0, 8
csrc mstatus, t0   # clears bit 3 of mstatus