csrrci

csrrci

RISC-V Assembler Referenz

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