csrcpseudo

csrc

pseudo
Ensamblador RISC-V Referencia

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

Descripción

csrc borra bits en un registro de control. 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 forma siguiente borra todos los bits del CSR que son 1 en rs y deja los demás bits sin cambios.

csrc csr, rs

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, de modo que el valor antiguo se descarta.

csrrc zero, csr, rs

Las líneas siguientes borran el bit 3 de mstatus, lo que desactiva la habilitación global de interrupciones.

li t0, 8
csrc mstatus, t0

El procesador borra este bit por sí mismo cuando comienza un trap, y mret lo restaura, por lo que un manejador rara vez necesita hacerlo. Un programa usa csrc para proteger un breve fragmento de código de las interrupciones y luego vuelve a establecer el bit con csrs.

Se expande a

csrrc zero, csr, rs

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

Ejemplo

li t0, 8
csrc mstatus, t0   # clears bit 3 of mstatus