csrc
pseudolyszt.net tratta csrc e altre istruzioni RISC-V in modo più dettagliato.
Descrizione
csrc cancella bit in un registro di controllo. Un registro di controllo e stato, o CSR, contiene lo stato del processore come l'indirizzo del gestore dei trap e gli interruttori degli interrupt (vedi csrrw). La forma seguente cancella ogni bit del CSR che è 1 in rs e lascia invariati gli altri bit.
csrc csr, rs
È una pseudoistruzione, un nome leggibile che l'assembler riscrive in un'istruzione reale. Diventa l'istruzione seguente, dove rd è zero così il vecchio valore viene scartato.
csrrc zero, csr, rs
Le righe seguenti cancellano il bit 3 di mstatus, il che disattiva l'abilitazione globale degli interrupt.
li t0, 8 csrc mstatus, t0
Il processore cancella da sé questo bit quando inizia un trap, e mret lo ripristina, quindi un gestore ne ha raramente bisogno. Un programma usa csrc per proteggere un breve tratto di codice dagli interrupt e poi imposta di nuovo il bit con csrs.
Si espande in
csrrc zero, csr, rs
L'assembler sostituisce questa pseudoistruzione con la o le istruzioni reali elencate sopra.
Esempio
li t0, 8 csrc mstatus, t0 # clears bit 3 of mstatus
