csrrwi

csrrwi

Ensamblador RISC-V Referencia

lyszt.net cubre csrrwi y otras instrucciones RISC-V con más detalle.

Descripción

csrrwi es csrrw con una constante en lugar del registro fuente. La i significa immediate (inmediato), una constante escrita en la instrucción. La constante uimm es un número de 0 a 31 porque se almacena en 5 bits. El valor antiguo del CSR va a rd y uimm se escribe en el CSR.

csrrwi rd, csr, uimm

La línea siguiente escribe 0 en mie, lo que desactiva todas las fuentes de interrupción, y deja el mie anterior en t1.

csrrwi t1, mie, 0

Un valor superior a 31 no cabe, por lo que un valor mayor se coloca primero en un registro y se escribe con csrrw. Cuando rd es zero, el CSR no se lee, lo que es la forma abreviada csrwi. Consulta csrrw para saber qué es un CSR.

El manual de RISC-V dice que las formas inmediatas toman un valor sin signo de 5 bits que se extiende con ceros, es decir, se rellena con ceros a la izquierda hasta el ancho completo del registro.

Ejemplo

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