csrrci

csrrci

Assembly RISC-V Referência

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