csrc
疑似lyszt.netはcsrcおよびその他のRISC-V命令をより詳しく扱っています。
説明
csrc は制御レジスタのビットをクリアします。制御・ステータスレジスタ(CSR)は、トラップハンドラのアドレスや割り込みスイッチなど、プロセッサの状態を保持します(csrrw を参照)。以下の形式は、rs で 1 になっている CSR のすべてのビットをクリアし、他のビットは変更しません。
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
