csrrwi

csrrwi

RISC-V Assembler Referenz

lyszt.net behandelt csrrwi und andere RISC-V-Befehle ausführlicher.

Beschreibung

csrrwi ist csrrw mit einer Konstante anstelle des Quellregisters. Das i steht für immediate (unmittelbar), 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 nach rd und uimm wird in den CSR geschrieben.

csrrwi rd, csr, uimm

Die folgende Zeile schreibt 0 in mie, wodurch alle Interruptquellen abgeschaltet werden, und lässt das vorherige mie in t1.

csrrwi t1, mie, 0

Ein Wert über 31 passt nicht hinein, daher wird ein größerer Wert zuerst in ein Register geschrieben und mit csrrw geschrieben. Wenn rd zero ist, wird der CSR nicht gelesen, was die Kurzform csrwi ist. Siehe csrrw für die Bedeutung eines CSR.

Das RISC-V-Handbuch besagt, dass die Immediate-Formen einen 5-Bit-Wert ohne Vorzeichen verwenden, der mit Nullen erweitert wird, d. h. links mit Nullen auf die volle Registerbreite aufgefüllt wird.

Beispiel

csrrwi t1, mie, 0   # mie = 0, t1 = old mie