csrsipseudo

csrsi

pseudo
Ensamblador RISC-V Referencia

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

Descripción

csrsi establece bits en un registro de control a partir de una constante. Un registro de control y estado, o CSR, contiene el estado del procesador, como la dirección del manejador de traps y los interruptores de interrupciones (véase csrrw). La constante uimm es un número de 0 a 31 porque se almacena en 5 bits. La forma siguiente establece todos los bits del CSR que son 1 en uimm y deja los demás bits sin cambios.

csrsi csr, uimm

Es una pseudoinstrucción, un nombre legible que el ensamblador reescribe como una instrucción real. Se convierte en la instrucción siguiente, donde rd es zero, por lo que el valor antiguo se descarta.

csrrsi zero, csr, uimm

La línea siguiente activa la habilitación global de interrupciones. El 8 es 1000 en binario, por lo que establece el bit 3 de mstatus.

csrsi mstatus, 8

Solo se pueden establecer así los bits 0 a 4, por lo que el bit 11 de mie necesita csrs con un registro. Véase csrci para borrar bits.

Se expande a

csrrsi zero, csr, uimm

El ensamblador reemplaza esta pseudoinstrucción con la instrucción o instrucciones reales enumeradas arriba.

Ejemplo

csrsi mstatus, 8   # sets bit 3 of mstatus