处理器提供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)
1 条评论
[…] 汇编(21)逻辑运算AND/OR/XOR/NOT/TEST […]