csrsi伪

csrsi

伪
RISC-V 汇编 参考

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

描述

csrsi 从常量设置控制寄存器中的位。控制与状态寄存器(CSR)保存处理器状态,例如陷阱处理程序地址和中断开关(参见 csrrw)。常量 uimm 是 0 到 31 之间的数字,因为它存储在 5 位中。下面的形式设置 CSR 中在 uimm 中为 1 的每一位,并保持其他位不变。

csrsi csr, uimm

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

csrrsi zero, csr, uimm

下面这一行打开全局中断使能。8 是二进制 1000,因此它设置 mstatus 的第 3 位。

csrsi mstatus, 8

这种方式只能设置第 0 到第 4 位,因此 mie 的第 11 位需要使用带寄存器的 csrs。清除位请参见 csrci。

展开为

csrrsi zero, csr, uimm

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

示例

csrsi mstatus, 8   # sets bit 3 of mstatus