csrsi
Pseudoelementlyszt.net behandelt csrsi und andere RISC-V-Befehle ausführlicher.
Beschreibung
csrsi setzt Bits in einem Steuerregister aus einer Konstante. Ein Steuer- und Statusregister, oder CSR, enthält den Prozessorzustand wie die Trap-Handler-Adresse und die Interrupt-Schalter (siehe csrrw). Die Konstante uimm ist eine Zahl von 0 bis 31, da sie in 5 Bits gespeichert wird. Die folgende Form setzt jedes Bit des CSR, das in uimm 1 ist, und lässt die anderen Bits unverändert.
csrsi csr, uimm
Es ist eine Pseudoinstruktion, ein lesbarer Name, den der Assembler in eine echte Instruktion umschreibt. Sie wird zur unten stehenden Instruktion, wobei rd zero ist, sodass der alte Wert verworfen wird.
csrrsi zero, csr, uimm
Die folgende Zeile schaltet die globale Interrupt-Freigabe ein. Die 8 ist binär 1000, setzt also Bit 3 von mstatus.
csrsi mstatus, 8
Nur die Bits 0 bis 4 können auf diese Weise gesetzt werden, daher benötigt Bit 11 von mie csrs mit einem Register. Siehe csrci zum Löschen von Bits.
Wird erweitert zu
csrrsi zero, csr, uimm
Der Assembler ersetzt diese Pseudoanweisung durch die oben aufgeführte(n) echte(n) Anweisung(en).
Beispiel
csrsi mstatus, 8 # sets bit 3 of mstatus
