xor
lyszt.net cubre xor y otras instrucciones RISC-V con más detalle.
Formato de codificación
Descripción
xor es una instrucción bit a bit. Al igual que and y or, opera sobre las 32 posiciones de un registro (la página de and cubre las operaciones bit a bit). El nombre significa OR exclusivo. En cada posición, el resultado es 1 cuando los dos bits de entrada difieren, uno 0 y otro 1, y 0 cuando coinciden. La forma siguiente aplica esto a rs1 y rs2 y escribe el resultado en rd.
xor rd, rs1, rs2
Dos propiedades hacen útil a XOR. Un valor al que se le aplica XOR consigo mismo da 0, ya que cada bit coincide consigo mismo, por lo que la siguiente línea pone un registro a cero.
xor t0, t0, t0
XOR con una máscara invierte los bits donde la máscara tiene un 1 y deja los demás sin cambios. Invertir dos veces restaura el valor original. El cifrado simple y las comprobaciones de errores dependen de esto.
XOR también comprueba la igualdad. Después de la línea siguiente, t2 es cero cuando las dos entradas eran idénticas y distinto de cero cuando difieren, y una bifurcación puede comprobar el resultado.
xor t2, t0, t1
El manual de RISC-V incluye xor entre las operaciones registro-registro, que leen rs1 y rs2 y escriben el resultado en rd. Realiza un OR exclusivo lógico bit a bit.
El ejemplo pone t0 a 0 sea cual sea el valor que tuviera antes. La instrucción li (load immediate) con la constante cero hace lo mismo.
Ejemplo
xor t0, t0, t0 # t0 = 0
