or
lyszt.net cubre or y otras instrucciones RISC-V con más detalle.
Formato de codificación
Descripción
or es una instrucción bit a bit, por lo que opera sobre los 32 bits de un registro de forma independiente (la página de and lo explica). En una posición de bit, el resultado es 1 si cualquiera de los bits de entrada es 1 o si ambos lo son. El resultado es 0 solo cuando ambas entradas son 0. La forma siguiente aplica esto a las 32 posiciones de rs1 y rs2 y escribe el resultado en rd.
or rd, rs1, rs2
OR establece bits. Para activar un bit y dejar los demás como estaban, se hace OR del valor con una máscara que tenga un 1 solo en esa posición. Los ajustes y las banderas empaquetados en un registro se activan de esta manera.
OR también fusiona valores. Cuando dos valores se desplazan a posiciones que no se solapan, un solo OR los combina en un único registro. Los valores separados de rojo, verde y azul se combinan en un solo color de la misma manera.
El manual de RISC-V incluye or entre las operaciones registro-registro. Lee los registros fuente rs1 y rs2, realiza un OR lógico bit a bit y escribe el resultado en el registro destino rd.
OR solo puede poner bits a 1. Borrar un bit requiere AND con una máscara, e invertir un bit requiere XOR. ori es la versión que hace OR de un registro con una constante fija.
Ejemplo
li t0, 0b1100 li t1, 0b0011 or t2, t0, t1 # t2 = 0b1111
