csrspseudo

csrs

pseudo
Ensamblador RISC-V Referencia

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

Descripción

csrs establece 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 establece todos los bits del CSR que son 1 en rs y deja los demás bits sin cambios.

csrs 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.

csrrs zero, csr, rs

Las interrupciones se habilitan con dos llamadas a csrs. La primera establece el bit 11 de mie, la habilitación de interrupciones externas. La segunda establece el bit 3 de mstatus, la habilitación global de interrupciones.

li t0, 0x800
csrs mie, t0
li t0, 8
csrs mstatus, t0

Ambos interruptores deben estar activados antes de que el procesador atienda una interrupción. El botón también tiene su propio registro de habilitación, descrito en la página de GPIO. Véase csrc para borrar bits.

El manual de RISC-V enumera csrs y csrc como las formas abreviadas para establecer y borrar bits de CSR cuando no se necesita el valor antiguo.

Se expande a

csrrs zero, csr, rs

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

Ejemplo

li t0, 8
csrs mstatus, t0   # sets bit 3 of mstatus