csrs
pseudolyszt.net aborda csrs e outras instruções RISC-V com mais detalhes.
Descrição
csrs define bits 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 forma abaixo define cada bit do CSR que é 1 em rs e deixa os outros bits inalterados.
csrs csr, rs
É 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, de modo que o valor antigo é descartado.
csrrs zero, csr, rs
As interrupções são habilitadas com duas chamadas a csrs. A primeira define o bit 11 de mie, a habilitação de interrupção externa. A segunda define o bit 3 de mstatus, a habilitação global de interrupção.
li t0, 0x800 csrs mie, t0 li t0, 8 csrs mstatus, t0
Ambos os interruptores devem estar ligados antes que o processador aceite uma interrupção. O botão também tem seu próprio registrador de habilitação, descrito na página GPIO. Veja csrc para limpar bits.
O manual do RISC-V lista csrs e csrc como as abreviações para definir e limpar bits de CSR quando o valor antigo não é necessário.
Expande para
csrrs zero, csr, rs
O montador substitui esta pseudoinstrução pela instrução ou instruções reais listadas acima.
Exemplo
li t0, 8 csrs mstatus, t0 # sets bit 3 of mstatus
