csrrsi

csrrsi

Assembly RISC-V Riferimento

lyszt.net tratta csrrsi e altre istruzioni RISC-V in modo più dettagliato.

Descrizione

csrrsi è csrrs con una maschera costante al posto di un registro. La i sta per immediate (immediato), una costante scritta nell'istruzione. La costante uimm è un numero da 0 a 31 perché è memorizzata in 5 bit. Il vecchio valore del CSR va in rd, poi ogni bit che è 1 in uimm viene impostato a 1 nel CSR.

csrrsi rd, csr, uimm

La riga seguente imposta il bit 3 di mstatus e lascia il valore precedente in t1. L'8 è 1000 in binario.

csrrsi t1, mstatus, 8

Solo i bit da 0 a 4 possono essere impostati in questo modo. Il bit 3 di mstatus, l'abilitazione globale degli interrupt, va bene. Il bit 11 di mie, l'abilitazione degli interrupt esterni, non va bene, quindi quello richiede csrrs con un registro che contiene 0x800. Quando uimm è 0, il CSR viene letto e non scritto. Quando rd è zero, il vecchio valore viene scartato, che è la forma abbreviata csrsi. Vedi csrrs per la forma con registro.

Esempio

csrrsi t1, mstatus, 8   # sets bit 3 of mstatus, t1 = old mstatus