前期回顾:
第1课:单片机简叙
第2课:单片机引脚介绍
第3课:单片机存储器结构
第4课:第一个单片机小程序
第5课:单片机延时程序分析
第6课:单片机并行口结构
第7课:单片机的特殊功能寄存器
第8课:单片机寻址方式与指令系统
第9课:单片机数据传递类指令
第10课:单片机数据传递类指令(补充)
第11课:单片机算术运算指令
逻辑与指令
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
而所有的或指令,就是将与指仿中的ANL 换成ORL,而异或指令则是将ANL 换成XRL。即
或指令:
ORL A,Rn ;A和Rn中的值按位'或',结果送入A中
ORL A,direct;A和与间址寻址单元@Ri中的值按位'或',结果送入A中
ORL A,#data;A和立direct中的值按位'或',结果送入A中
ORL A,@Ri;A和即数data按位'或',结果送入A中
ORL direct,A;direct中值和A中的值按位'或',结果送入direct中
ORL direct,#data;direct中的值和立即数data按位'或',结果送入direct中。
异或指令:
XRL A,Rn ;A和Rn中的值按位'异或',结果送入A中
XRL A,direct;A和direct中的值按位'异或',结果送入A中
XRL A,@Ri;A和间址寻址单元@Ri中的值按位'异或',结果送入A中
XRL A,#data;A和立即数data按位'异或',结果送入A中
XRL direct,A ;direct中值和A中的值按位'异或',结果送入direct中
XRL direct,#data;direct中的值和立即数data按位'异或',结果送入direct中。
练习:
MOV A,#24H
MOV R0,#37H
ORL A,R0
XRL A,#29H
MOV 35H,#10H
ORL 35H,#29H
MOV R0,#35H
ANL A,@R0
未完....
来源:单片机教程网