csrrci
lyszt.net behandelt csrrci und andere RISC-V-Befehle ausführlicher.
Beschreibung
csrrci ist csrrc mit einer konstanten Maske anstelle eines Registers. Das i steht für immediate, eine Konstante, die in die Anweisung geschrieben wird. Die Konstante uimm ist eine Zahl von 0 bis 31, da sie in 5 Bits gespeichert wird. Der alte Wert des CSR geht in rd, dann wird jedes Bit, das in uimm 1 ist, im CSR auf 0 gelöscht.
csrrci rd, csr, uimm
Die folgende Zeile löscht Bit 3 von mstatus, wodurch die globale Interrupt-Freigabe deaktiviert wird, und lässt den vorherigen Wert in t1. Die 8 ist binär 1000.
csrrci t1, mstatus, 8
Nur die Bits 0 bis 4 können auf diese Weise gelöscht werden. Wenn uimm 0 ist, wird der CSR gelesen und nicht geschrieben. Wenn rd zero ist, wird der alte Wert verworfen, was die Kurzform csrci ist. Siehe csrrc für die Registerform.
Beispiel
csrrci t1, mstatus, 8 # clears bit 3 of mstatus, t1 = old mstatus
