csrrwi

csrrwi

Assembly RISC-V Referência

lyszt.net aborda csrrwi e outras instruções RISC-V com mais detalhes.

Descrição

csrrwi é csrrw com uma constante no lugar do registrador de origem. O i significa immediate (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 e uimm é escrito no CSR.

csrrwi rd, csr, uimm

A linha abaixo escreve 0 em mie, o que desliga todas as fontes de interrupção, e deixa o mie anterior em t1.

csrrwi t1, mie, 0

Um valor acima de 31 não cabe, então um valor maior vai primeiro para um registrador e é escrito com csrrw. Quando rd é zero, o CSR não é lido, o que é a forma abreviada csrwi. Veja csrrw para saber o que é um CSR.

O manual do RISC-V diz que as formas imediatas usam um valor sem sinal de 5 bits que é estendido com zeros, ou seja, preenchido com zeros à esquerda até a largura total do registrador.

Exemplo

csrrwi t1, mie, 0   # mie = 0, t1 = old mie