csrrci
lyszt.net aborda csrrci e outras instruções RISC-V com mais detalhes.
Descrição
csrrci é csrrc com uma máscara constante no lugar de um registrador. O i significa imediato, uma constante escrita na instrução. A constante uimm é um número de 0 a 31 porque é armazenada em 5 bits. O valor antigo do CSR vai para rd, então cada bit que é 1 em uimm é limpo para 0 no CSR.
csrrci rd, csr, uimm
A linha abaixo limpa o bit 3 de mstatus, o que desativa a habilitação global de interrupções, e deixa o valor anterior em t1. O 8 é o binário 1000.
csrrci t1, mstatus, 8
Apenas os bits 0 a 4 podem ser limpos dessa forma. Quando uimm é 0, o CSR é lido e não escrito. Quando rd é zero, o valor antigo é descartado, o que é a forma abreviada csrci. Veja csrrc para a forma com registrador.
Exemplo
csrrci t1, mstatus, 8 # clears bit 3 of mstatus, t1 = old mstatus
