51 单片机教程:单片机逻辑与或异或指令详解
ANL A,Rn ;A 与 Rn 中的值按位’与’,结果送入 A 中 ANL A,direct;A 与 direct 中的值按位’与’,结果送入 A 中
ANL A,@Ri;A 与间址寻址单元@Ri 中的值按位’与’,结果送入 A 中 ANL A,#data;A 与立即数 data 按位’与’,结果送入 A 中
ANL direct,A;direct 中值与 A 中的值按位’与’,结果送入 direct 中
ANL direct,#data;direct 中的值与立即数 data 按位’与’,结果送入 direct 中。 这几条指令的关键是知道什么是逻辑与。这里的逻辑与是指按位与 例:71H 和 56H 相与则将两数写成二进制形式: (71H) 01110001 (56H) 00100110
结果 00100000 即 20H,从上面的式子可以看出,两个参与运算的值只要其 中有一个位上是 0,则这位的结果就是 0,两个同是 1,结果才是 1。 理解了逻辑与的运算规则,结果自然就出来了。看每条指令后面的注释 下面再举一些例子来看。 MOV A,#45H;(A)=45H MOV R1,#25H;(R1)=25H MOV 25H,#79H;(25H)=79H
ANL A,@R1;45H 与 79H 按位与,结果送入 A 中为 41H (A)=41H ANL 25H,#15H;25H 中的值(79H)与 15H 相与结果为(25H)=11H) ANL 25H,A;25H 中的值(11H)与 A 中的值(41H)相与,结果为(25H)=11H 在知道了逻辑与指令的功能后,逻辑或和逻辑异或的功能就很简单了。逻辑 或是按位或,即有 1 为 1,全 0 为 0。例:
10011000 或 01100001 结果 11111001
而异或则是按位异或,相同为 0,相异为 1。例: 10011000 异或 01100001 结果 11111001
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
相关推荐: