and
lyszt.net tratta and e altre istruzioni RISC-V in modo più dettagliato.
Formato di codifica
Descrizione
and è un'istruzione bit a bit. Un registro contiene 32 bit, ovvero 32 0 e 1 separati in fila. Un'istruzione bit a bit applica la sua operazione a tutte le 32 posizioni in modo indipendente, e nessun riporto passa tra le posizioni.
Su un singolo bit, AND dà 1 solo quando entrambi i bit di input sono 1, e 0 altrimenti. La forma seguente applica questa regola a tutte le 32 posizioni, confrontando rs1 e rs2 e scrivendo il risultato in rd.
and rd, rs1, rs2
AND è usato per il mascheramento, che mantiene alcuni bit e ne azzera altri. Dove la maschera ha un 1, il bit originale rimane. Dove la maschera ha uno 0, il risultato è 0. Eseguire l'AND di un valore con la maschera 00001111 mantiene i quattro bit bassi e azzera il resto. Il mascheramento estrae un campo da un valore che raggruppa diversi campi insieme.
Il manuale RISC-V elenca and, or e xor tra le operazioni registro-registro. Tutte leggono i registri sorgente rs1 e rs2, scrivono il risultato nel registro di destinazione rd ed eseguono operazioni logiche bit a bit.
Nell'esempio, 0b1100 (il prefisso 0b indica cifre binarie) viene combinato in AND con 0b1010. Entrambi gli input hanno un 1 solo nella posizione più a sinistra, quindi il risultato è 0b1000, e va in t2.
Esempio
li t0, 0b1100 li t1, 0b1010 and t2, t0, t1 # t2 = 0b1000
