Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El conjunto de instrucciones del procesador proporciona las instrucciones AND, OR, XOR,
TEST y NOT de la lógica booleana, que prueba, establece y borra los bits según las
necesidades del programa.
El formato de estas instrucciones:
La instrucción AND se utiliza para admitir expresiones lógicas mediante la realización de una
operación AND bit a bit. La operación AND bit a bit devuelve 1, si los bits coincidentes de
ambos operandos son 1; de lo contrario, devuelve 0. Por ejemplo
Operand1: 0101
Operand2: 0011
------------------------------------------
After AND -> Operand1: 0001
La operación AND se puede utilizar para borrar uno o más bits. Por ejemplo, supongamos
que el registro BL contiene 0011 1010. Si necesita borrar los bits de orden superior a cero,
haga AND con 0FH.
Tomemos otro ejemplo. Si desea verificar si un número dado es impar o par, una prueba
simple sería verificar el bit menos significativo del número. Si esto es 1, el número es impar,
de lo contrario el número es par.
Suponiendo que el número está en el registro AL, podemos escribir −
AND AL, 01H ; ANDing with 0000 0001
JZ EVEN_NUMBER
Ejemplo
section . text
global _start ;must be declared for
using gcc
incluso :
mueve ah , 09h
superación :
sección _ datos
Even Number!
Cambie el valor en el registro del hacha con un dígito impar, como −
El programa mostraría:
Odd Number!
Operand1:0101
Operand2:0011
La operación OR se puede utilizar para establecer uno o más bits. Por ejemplo, supongamos
que el registro AL contiene 0011 1010, necesita establecer los cuatro bits de orden inferior,
puede realizar operaciones OR con un valor 0000 1111, es decir, FH.
Ejemplo
OR AL, BL
section .text
global _start: ;must be declared for using gcc
section .bss
result resb 1
La instrucción XOR
La instrucción XOR implementa la operación XOR bit a bit. La operación XOR establece el bit
resultante en 1, si y solo si los bits de los operandos son diferentes. Si los bits de los
operandos son iguales (ambos 0 o ambos 1), el bit resultante se borra a 0.
Por ejemplo:
Operand1:0101
Operand2:0011
XORing un operando consigo mismo cambia el operando a 0. Esto se utiliza para borrar un
registro.
La instrucción PRUEBA
La instrucción TEST funciona igual que la operación AND, pero a diferencia de la instrucción
AND, no cambia el primer operando. Entonces, si necesitamos verificar si un número en un
registro es par o impar, también podemos hacerlo usando la instrucción TEST sin cambiar el
número original.
TEST AL, 01H
JZ EVEN_NUMBER
La instrucción NOT
La instrucción NOT implementa la operación NOT bit a bit. La operación NOT invierte los bits
en un operando. El operando puede estar en un registro o en la memoria.
Por ejemplo: