单片机逻辑运算指令
*
第1页,共16页,2022年,5月20日,3点8分,星期二
★异或运算: 符号 A Z
XRL 异或
功能:第一操作数和第二操作数进行相应的逻辑运算,结果在第一操作数指出的地址。
源及目的见 P50—P51页。
例
*
第8页,共16页,2022年,5月20日,3点8分,星期二
例1: MOV A,#46H
MOV 40H, #59H
ANL A,#37H
ORL 40H,A
ORL A, 40H
XRL A,#55H
0 1 0 0 0 1 1 0
∧ 0 0 1 1 0 1 1 1
0 0 0 0 0 1 1 0 A=06H
∨ 0 1 0 1 1 0 0 1
0 1 0 1 1 1 1 1 40H=5F
∨ 0 0 0 0 0 1 1 0
0 1 0 1 1 1 1 1 A=5FH
0 1 0 1 0 1 0 1
0 0 0 0 1 0 1 0 A=0AH
*
第9页,共16页,2022年,5月20日,3点8分,星期二
注:逻辑运算结果均在第一操作数中(目的),第二操作数内容不变。
*
第10页,共16页,2022年,5月20日,3点8分,星期二
此类逻辑运算指令用途很广,举例:
例2 用“与”掩码的方法切取数据中需要的部分
MOV A, #0F6H ;设A中为有符号数
① ANL A,# 0FH ;屏蔽高4位 (A)=06H
② ANL A,#7FH ;屏蔽符号位 (A)=76H
ANL A,#80H ;切取符号位 (A)=80H
0FH,7FH,80H,称为掩码,使用不同的掩码可屏蔽掉不同的部份,留下有用的信息。
*
第11页,共16页,2022年,5月20日,3点8分,星期二
例3
用“或”指令置位任何RAM单元或寄存器的某些位,方法是将需置1的位和“1”相或。
例如, ORL P1 ,#00110011B;P1口的D0,D1,D4,D5位置1
例4
拼凑字节。例如要求将A内容的低2位信息送入P1口的低2位,P1口原高6位不变。
ANL A,#00000011B ;切取A中低2位
ANL P1,#11111100B ;屏蔽P1口低2位
ORL P1, A ;拼凑字节
*
第12页,共16页,2022年,5月20日,3点8分,星期二
例5.
用异或指令对RAM单元或寄存器某些位求反。
方法是:欲取反的位与“1”相异或
例如:XRL P1 ,#00110011B
;P1口的D 0,D1 ,D 4,D 5取反。
例6.用异或指令判断二数是否相等。
例如: MOV A, 30H
XRL A, 31H
;若运行结果(A)=0 则(30H)=(31H)
*
第13页,共16页,2022年,5月20日,3点8分,星期二
三、 位逻辑操作指令:
1. ORL 或
C , BIT ;C和某位地址的内容相
ANL 与
2. ORL 或
C , BI
单片机逻辑运算指令 来自淘豆网m.daumloan.com转载请标明出处.