csrrwi

csrrwi

Assembleur RISC-V Référence

lyszt.net couvre csrrwi et d'autres instructions RISC-V plus en détail.

Description

csrrwi est csrrw avec une constante à la place du registre source. Le i signifie immediate (immédiat), une constante écrite dans l'instruction. La constante uimm est un nombre de 0 à 31 car elle est stockée sur 5 bits. L'ancienne valeur du CSR va dans rd et uimm est écrit dans le CSR.

csrrwi rd, csr, uimm

La ligne ci-dessous écrit 0 dans mie, ce qui désactive toutes les sources d'interruption, et laisse le mie précédent dans t1.

csrrwi t1, mie, 0

Une valeur supérieure à 31 ne tient pas, donc une valeur plus grande est d'abord placée dans un registre puis écrite avec csrrw. Lorsque rd est zero, le CSR n'est pas lu, ce qui correspond à la notation abrégée csrwi. Voir csrrw pour ce qu'est un CSR.

Le manuel RISC-V indique que les formes immédiates prennent une valeur non signée de 5 bits qui est étendue par zéros, c'est-à-dire complétée par des zéros à gauche jusqu'à la largeur complète du registre.

Exemple

csrrwi t1, mie, 0   # mie = 0, t1 = old mie