csrc伪

csrc

伪
RISC-V 汇编 参考

lyszt.net 更详细地介绍了 csrc 和其他 RISC-V 指令。

描述

csrc 清除控制寄存器中的位。控制与状态寄存器(CSR)保存处理器状态,例如陷阱处理程序地址和中断开关(参见 csrrw)。下面的形式会清除 CSR 中在 rs 中为 1 的每一位,并保持其他位不变。

csrc csr, rs

它是一条伪指令,即汇编器会将其重写为真实指令的可读名称。它变成下面的指令,其中 rd 为 zero,因此旧值被丢弃。

csrrc zero, csr, rs

下面的行清除 mstatus 的第 3 位,从而关闭全局中断使能。

li t0, 8
csrc mstatus, t0

处理器在陷阱开始时自行清除该位,而 mret 会恢复它,因此处理程序很少需要这样做。程序使用 csrc 保护一小段代码免受中断,然后用 csrs 再次设置该位。

展开为

csrrc zero, csr, rs

汇编器会将此伪指令替换为上面列出的真实指令或指令。

示例

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