csrcpseudo

csrc

pseudo
Assembly RISC-V Riferimento

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