csrsipseudo

csrsi

pseudo
Assembleur RISC-V Référence

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

Description

csrsi définit des bits dans un registre de contrôle à partir d'une constante. Un registre de contrôle et d'état, ou CSR, contient l'état du processeur tel que l'adresse du gestionnaire de piège et les commutateurs d'interruption (voir csrrw). La constante uimm est un nombre de 0 à 31 car elle est stockée sur 5 bits. La forme ci-dessous définit tous les bits du CSR qui valent 1 dans uimm et laisse les autres bits inchangés.

csrsi csr, uimm

C'est une pseudo-instruction, un nom lisible que l'assembleur réécrit en une instruction réelle. Elle devient l'instruction ci-dessous, où rd est zero afin que l'ancienne valeur soit ignorée.

csrrsi zero, csr, uimm

La ligne ci-dessous active l'activation globale des interruptions. Le 8 est 1000 en binaire, donc elle définit le bit 3 de mstatus.

csrsi mstatus, 8

Seuls les bits 0 à 4 peuvent être définis de cette manière, donc le bit 11 de mie nécessite csrs avec un registre. Voir csrci pour effacer des bits.

Se développe en

csrrsi zero, csr, uimm

L'assembleur remplace cette pseudo-instruction par la ou les instructions réelles listées ci-dessus.

Exemple

csrsi mstatus, 8   # sets bit 3 of mstatus