处理器提供AND、OR、XOR、NOT逻辑运算指令

AND和OR指令:

AND指令:与运算,用于将特定位清零。是按照二进制位运算的,它会将两个相对应的位运算,2个相对应的位如果都是1 结果就是1;如果两个位中有一个0,结果为0
相对应的位如何理解呢,看下面这个例子里面的

00001111B
11110000B

不知道这样能不能理解,颜色相同的数字就叫对应的位


格式:AND 目标操作数(destination),源操作数(source)

例子:

      MOV AL, 00001111B
      AND AL, 11110000B

根据运算方法,这个结果是 00000000B

例子:

      MOV AL, 00001010B
      AND AL, 00001111B

结果是:00001010B




OR指令:或运算;相对应的位只要有一个是1,那么运算结果就是1,其余情况就是0

格式:OR 目标操作数(destination),源操作数(source)

      MOV AL, 00001111B
      OR  AL, 11110000B

结果是:11111111B




AND	AX,BX	;将AX和BX运算并存储在AX中

OR	AX,WRD	;将AX和WRD运算并存储在AX中

运算结果存储到前面一个操作数里(目标操作数)




XOR和NOT指令:

XOR指令:逻辑异或操作,并将结果存放在目标操作数里。
如果两个位的值相同(同为1或同为0),那么结果位等于0;
如果两个位的值不同,那么结果位等于1
格式:XOR 目标操作数(destination),源操作数(source)

      MOV AL, 00001111B
      XOR AL, 11110000B

结果是:11111111B




NOT指令:把操作数按位取反,如果是0运算后结果位就是1,如果是1运算后结果位就是0

比如 01001101B
运算后结果为10110010B




TEST指令:TEST指令将两个操作数进行AND运算(文章最前面的那个指令),并且根据运算结果设置相关的标志位,但是与AND运算不同的是,TEST指令的两个操作数都不会被改变

格式:TEST 目标操作数(destination),源操作数(source)




最后修改:2022 年 03 月 08 日
如果觉得我的文章对你有用,请随意赞赏