csrrwi
lyszt.netはcsrrwiおよびその他のRISC-V命令をより詳しく扱っています。
説明
csrrwi は csrrw のソースレジスタを定数に置き換えたものです。i はイミディエイト(immediate)を意味し、命令に書き込まれる定数のことです。定数 uimm は 5 ビットに格納されるため、0 から 31 までの数値です。CSR の古い値は rd に入り、uimm が CSR に書き込まれます。
csrrwi rd, csr, uimm
以下の行は mie に 0 を書き込み、すべての割り込みソースをオフにし、以前の mie を t1 に残します。
csrrwi t1, mie, 0
31 を超える値は収まらないため、より大きな値はまずレジスタに入れられ、csrrw で書き込まれます。rd が zero の場合、CSR は読み取られません。これが csrwi の省略形です。CSR とは何かについては csrrw を参照してください。
RISC-V マニュアルによると、イミディエイト形式はゼロ拡張された 5 ビットの符号なし値を取ります。つまり、レジスタの全幅まで左側にゼロで埋められます。
例
csrrwi t1, mie, 0 # mie = 0, t1 = old mie
