csrc
Pseudoelementlyszt.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
