csrrci

csrrci

RISC-V アセンブリ 参考

lyszt.netはcsrrciおよびその他のRISC-V命令をより詳しく扱っています。

説明

csrrci は csrrc のレジスタの代わりに定数マスクを使用するものです。i はイミディエイト(immediate)を意味し、命令に書き込まれる定数です。定数 uimm は 5 ビットに格納されるため、0 から 31 までの数値です。CSR の古い値は rd に入り、uimm で 1 になっているすべてのビットが CSR で 0 にクリアされます。

csrrci rd, csr, uimm

以下の行は mstatus のビット 3 をクリアし、グローバル割り込みイネーブルをオフにし、以前の値を t1 に残します。8 は 2 進数の 1000 です。

csrrci t1, mstatus, 8

この方法でクリアできるのはビット 0 から 4 のみです。uimm が 0 の場合、CSR は読み取られますが書き込まれません。rd が zero の場合、古い値は破棄され、これが csrci の省略形です。レジスタ形式については csrrc を参照してください。

例

csrrci t1, mstatus, 8   # clears bit 3 of mstatus, t1 = old mstatus