单片机3.3逻辑运算指令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

右移n次等于除2n。
程序如下:
6
MOV A,30H
;x
RL A
RL A MOV 31H, A MOV A,30H CLR C
;2X
;4X
;X
RRC A
CLR C RRC A MOV 32H ,A
;X/2
;X/4
7
二、
包含双操作数的逻辑运算指令:
一般形式:
ANL 与
ORL 第一操作数,第二操作数
XRL
记作 Z = A
2
一、 对A累加器进行的逻辑操作:
1. CPL A 2. CLR A 3.移位指令: (1). RR A 7 (2).RRC A 0 ;A求反 ;A清0
C
7
0
3
(3).RL A 7 (4).RLC A C 7 0 0
移位指令助记符意义: 第一个字母R 表示移位操作。
第二个字母
第三个字母
表示移位方向,L 向左;R 向右。
表示是否通过C。 为C表示连同C共9位数一起移位 无第三字母表示与C无关。
4.SWAP A
;A的内容高低半字节相交换
4
例:CLR MOV RL A RLC A RR A
C A , #0E2H
;C=0 ;1 1 1 0 0 0 1 0 ;1 1 0 0 0 1 0 1 ;1 0 0 0 1 0 1 0 ;0 1 0 0 0 1 0 1 C=1 E2H
例4
拼凑字节。例如要求将A内容的低2位信息送入P1口的低2位,P1口 原高6位不变。 ANL A,#00000011B ANL P1,#11111100B ;切取A中低2位 ;屏蔽P1口低2位
ORL P1, A
;拼凑字节
12
例5.
用异或指令对RAM单元或寄存器某些位求反。
方法是:欲取反的位与“1”相异或 例如:XRL P1 ,#00110011B ;P1口的D 0,D1 ,D 4,D 5取反。 例6.用异或指令判断二数是否相等。
9
注:逻辑运算结果均在第一操作数中(目的), 第二操作数内容不变。
10
此类逻辑运算指令用途很广,举例:
例2 用“与”掩码的方法切取数据中需要的部分 MOV A, #0F6H ① ANL A,# 0FH ② ANL A,#7FH ;设A中为有符号数 ;屏蔽高4位 (A)=06H ;屏蔽符号位 (A)=76H
③ ANL A,#80H
;切取符号位 (A)=80H
0FH,7FH,80H,称为掩码,使用不同的掩码可屏蔽掉不同的部 份,留下有用的信息。
11
例3
用“或”指令置位任何RAM单元或寄存器的某些位,方法是将需 置1的位和“1”相或。
例如, ORL P1 ,#00110011B;P1口的D0,D1,D4,D5位置1
清零 求反
SETB
置1
14
位逻辑指令举例
MOV 24H, #02H MOV 2EH, #05H ;(24H) = 02H,(21H位)=1 (2EH)=05H,72H位70H位=1
MOV C, 21H
ANL C, 72H CLR C
;( C )=1
;( C) =1 ;( C) =0 ;(24H位)求反为1,( C )=1 ;(71H位)=0,与结果( C )=0 ;( C )=1 ;( C )=0 ;(21H位)=1,或结果( C )=1
RRC A
SWAP A
;1 0 1 0 0 0 1 0
;0 0 1 0 1 0 1 0
C=1
5
例:已知30H单元的内容为X,且X为无符号数,求4X送 入31H单元存放,求X/4 的整数部份送入32H单元存放, (0≤X<63) 讨论:将一个二进制数左移一次等于乘2的运算,
左移n次 等于乘2n
同理将其右移一次等于除2的运算,
第三节
逻辑运算指令
关于逻辑运算法则:
★与运算:逻辑乘 符号 A B 记作 Z = A ×B 或 Z = A ∧B 只有输入信号均为1时输出为1。 Z
★或运算:逻辑加
符号
A
B
Z
记作 Z = A +B 或 Z = A ∨B 输入信号中有一个1则输出为1。
1
★异或运算:
符号
A
B
Z
记作 Z = A + B 输入信号相同则输出为0,输入信号相异则输出为1。 ★非运算:求反 符号 A Z
例如: MOV A, 30H
XRL A, 31H ;若运行结果(A)=0 则(30H)=(31H)
13
三、 位逻辑操作指令:
1. ORL
C , BIT ;C和某位地址的内容相 ANL


2. ORL

C , BIT
ANL
;C和某位地址内容的反码相

3.
CLR CPL C (BIT) ;C (BIT)

异或
功能:第一操作数和第二操作数进行相应的逻辑运算,结 果在第一操作数指出的地址。
源及目的见 P50—P5源自文库页。 例
8
例1: MOV A,#46H MOV 40H, #59H
ANL A,#37H
ORL 40H,A
ORL A, 40H
XRL A,#55H
01000110 ∧ 00110111 0 0 0 0 0 1 1 0 A=06H ∨ 01011001 0 1 0 1 1 1 1 1 40H=5F ∨ 00000110 0 1 0 1 1 1 1 1 A=5FH 01010101 0 0 0 0 1 0 1 0 A=0AH
ORL C, 24H
ANL C, 71H SETB C CPL C ORL C, 21H
CLR 72H
;(72H位)=0,(2EH)=01H
15
注:
●位逻辑指令是某一位地址或C的内容进行逻辑操作,参 与运算的只是一位数。 ●片内RAM可位寻址字节地址是20H—2FH,位地址范围 是00H-7FH, 共128位,注意区分字节地址和位地址。
●特殊功能寄存器SFR中可位寻址的位亦可参与位逻辑运 算,这些位所在的字节地址必能被8整除,其余不可位寻 址的位不可参与位逻辑运算。
16
相关文档
最新文档