csrsi疑似

csrsi

疑似
RISC-V アセンブリ 参考

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

説明

csrsi は定数から制御レジスタのビットを設定します。制御およびステータスレジスタ(CSR)は、トラップハンドラアドレスや割り込みスイッチなどのプロセッサ状態を保持します(csrrw を参照)。定数 uimm は 5 ビットに格納されるため、0 から 31 までの数値です。以下の形式は、uimm で 1 になっている CSR のすべてのビットを設定し、他のビットは変更しません。

csrsi csr, uimm

これは疑似命令であり、アセンブラが実際の命令に書き換える読みやすい名前です。これは以下の命令になり、rd は zero であるため古い値は破棄されます。

csrrsi zero, csr, uimm

以下の行はグローバル割り込みイネーブルをオンにします。8 は 2 進数の 1000 なので、mstatus のビット 3 を設定します。

csrsi mstatus, 8

この方法で設定できるのはビット 0 から 4 のみなので、mie のビット 11 にはレジスタを使う csrs が必要です。ビットのクリアについては csrci を参照してください。

展開先

csrrsi zero, csr, uimm

アセンブラはこの疑似命令を、上記に示された実際の命令または複数の命令に置き換えます。

例

csrsi mstatus, 8   # sets bit 3 of mstatus