csrc
pseudolyszt.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
