csrwipseudo

csrwi

pseudo
Assembly RISC-V Referência

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

Descrição

csrwi grava uma constante em um registrador de controle. Um registrador de controle e status, ou CSR, mantém o estado do processador, como o endereço do tratador de trap e os interruptores de interrupção (veja csrrw). A constante uimm é um número de 0 a 31 porque é armazenada em 5 bits. A forma abaixo a grava no CSR e descarta o valor antigo.

csrwi csr, uimm

É uma pseudoinstrução, um nome legível que o montador reescreve como uma instrução real. Ela se torna a instrução abaixo, onde rd é zero para que o valor antigo não seja lido.

csrrwi zero, csr, uimm

A linha abaixo grava 0 em mie, o que desliga todas as fontes de interrupção.

csrwi mie, 0

Um valor acima de 31 não cabe, então um valor maior vai primeiro para um registrador e é gravado com csrw.

Expande para

csrrwi zero, csr, uimm

O montador substitui esta pseudoinstrução pela instrução ou instruções reais listadas acima.

Exemplo

csrwi mie, 0   # mie = 0