csrs
伪lyszt.net 更详细地介绍了 csrs 和其他 RISC-V 指令。
描述
csrs 用于设置控制寄存器中的位。控制和状态寄存器(CSR)保存处理器状态,例如陷阱处理程序地址和中断开关(参见 csrrw)。下面的形式会设置 CSR 中在 rs 里为 1 的每一位,并保持其他位不变。
csrs csr, rs
它是一条伪指令,即汇编器会将其重写为真实指令的可读名称。它会变成下面的指令,其中 rd 为 zero,因此旧值被丢弃。
csrrs zero, csr, rs
中断通过两次调用 csrs 来启用。第一次设置 mie 的第 11 位,即外部中断使能。第二次设置 mstatus 的第 3 位,即全局中断使能。
li t0, 0x800 csrs mie, t0 li t0, 8 csrs mstatus, t0
处理器接受中断前,两个开关都必须打开。按钮也有自己的使能寄存器,在 GPIO 页面中描述。清除位请参见 csrc。
RISC-V 手册将 csrs 和 csrc 列为在不需要旧值时设置和清除 CSR 位的简写。
展开为
csrrs zero, csr, rs
汇编器会将此伪指令替换为上面列出的真实指令或指令。
示例
li t0, 8 csrs mstatus, t0 # sets bit 3 of mstatus
