csrsiPseudoelement

csrsi

Pseudoelement
RISC-V Assembler Referenz

lyszt.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