ori
lyszt.net tratta ori e altre istruzioni RISC-V in modo più dettagliato.
Formato di codifica
Descrizione
ori esegue un OR bit a bit con una costante. La sua relazione con or corrisponde a quella di andi con and. La i significa immediato, un valore fisso codificato nell'istruzione. ori esegue l'OR di un registro con quella costante invece di eseguire l'OR di due registri. La regola dell'OR non cambia. Una posizione di bit nel risultato è 1 quando uno dei bit in quella posizione è 1, quindi la costante imposta i bit che scegli. La pagina or copre l'operazione.
La forma di ori appare di seguito. Esegue l'OR del valore in rs1 con la costante imm e scrive il risultato in rd.
ori rd, rs1, imm
L'OR imposta i bit e lascia gli altri come erano, quindi ori attiva flag specifici quando sai quali vuoi. La riga successiva attiva il terzo bit da destra in t0 e lascia tutti gli altri bit invariati. Il prefisso 0b contrassegna una costante binaria.
ori t0, t0, 0b100
I registri di configurazione, i flag di autorizzazione e le parole di stato contengono bit indipendenti di attivazione e disattivazione, e ori attiva quelli scelti in una singola istruzione senza registro di maschera.
Il manuale RISC-V afferma che l'immediato a 12 bit viene esteso con il segno a 32 bit prima dell'operazione. Una costante negativa ha quindi tutti i bit superiori impostati, e ori con -1 imposta tutti i bit del risultato.
La costante è limitata a 12 bit, come con andi e addi. Per impostare bit al di fuori di tale intervallo, carica la maschera più ampia in un registro con li e usa or.
Esempio
li t0, 0 ori t1, t0, 0xf # t1 = 0xf
