csrspseudo

csrs

pseudo
Assembly RISC-V Referência

lyszt.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