and
lyszt.net couvre and et d'autres instructions RISC-V plus en détail.
Format d'encodage
Description
and est une instruction bit à bit. Un registre contient 32 bits, qui sont 32 0 et 1 distincts à la suite. Une instruction bit à bit applique son opération à toutes les 32 positions indépendamment, et aucune retenue ne passe entre les positions.
Sur un seul bit, AND donne 1 uniquement lorsque les deux bits d'entrée valent 1, et 0 sinon. La forme ci-dessous applique cette règle aux 32 positions, en comparant rs1 et rs2 et en écrivant le résultat dans rd.
and rd, rs1, rs2
AND est utilisé pour le masquage, qui conserve certains bits et efface les autres. Là où le masque contient un 1, le bit d'origine est conservé. Là où le masque contient un 0, le résultat est 0. Un AND d'une valeur avec le masque 00001111 conserve les quatre bits de poids faible et efface le reste. Le masquage extrait un champ d'une valeur qui regroupe plusieurs champs.
Le manuel RISC-V liste and, or et xor parmi les opérations registre-registre. Toutes lisent les registres sources rs1 et rs2, écrivent le résultat dans le registre de destination rd et effectuent des opérations logiques bit à bit.
Dans l'exemple, 0b1100 (le préfixe 0b indique des chiffres binaires) est combiné par AND avec 0b1010. Les deux entrées ont un 1 uniquement à la position la plus à gauche, donc le résultat est 0b1000, et il va dans t2.
Exemple
li t0, 0b1100 li t1, 0b1010 and t2, t0, t1 # t2 = 0b1000
