and
lyszt.net cubre and y otras instrucciones RISC-V con más detalle.
Formato de codificación
Descripción
and es una instrucción bit a bit. Un registro contiene 32 bits, que son 32 ceros y unos separados en una fila. Una instrucción bit a bit aplica su operación a las 32 posiciones de forma independiente, y no se produce ningún acarreo entre posiciones.
En un solo bit, AND da 1 solo cuando ambos bits de entrada son 1, y 0 en caso contrario. La forma a continuación aplica esa regla a las 32 posiciones, comparando rs1 y rs2 y escribiendo el resultado en rd.
and rd, rs1, rs2
AND se usa para el enmascaramiento, que conserva algunos bits y borra otros. Donde la máscara tiene un 1, el bit original se mantiene. Donde la máscara tiene un 0, el resultado es 0. Aplicar AND a un valor con la máscara 00001111 conserva los cuatro bits bajos y borra el resto. El enmascaramiento extrae un campo de un valor que empaqueta varios campos juntos.
El manual de RISC-V incluye and, or y xor entre las operaciones registro-registro. Todas ellas leen los registros fuente rs1 y rs2, escriben el resultado en el registro destino rd y realizan operaciones lógicas bit a bit.
En el ejemplo, se aplica AND a 0b1100 (el prefijo 0b marca los dígitos binarios) con 0b1010. Ambas entradas tienen un 1 solo en la posición más a la izquierda, por lo que el resultado es 0b1000, y va a t2.
Ejemplo
li t0, 0b1100 li t1, 0b1010 and t2, t0, t1 # t2 = 0b1000
