第九讲 逻辑操作类指令
逻辑运算指令
第3页
2021年12月8日星期三
3. 寄存器寻址
格式:Rd &= Rs或Rd=Rd&Rs
功能:Rd & Rs→Rd
说明:将Rd和Rs的数据进行逻辑与操作,结果送Rd寄存器。
例如,假设开始时的标志位为N=0,Z=1,S=0,C=1。
R1=0x00FF
//R1的初值为0x00FF,Z=0,N=0
R2=0XFFFF
例如,假设开始时的标志位为N=0,Z=1,S=0,C=1。
R1=0x00FF
//R1的初值为0x00FF,Z=0,N=0
R1|=0xF000
//R1的值变为0பைடு நூலகம்F0FF, Z=0,N=1
第9页
2021年12月8日星期三
2. 直接寻址 格式1:Rd|=[A6]或Rd=Rd|[A6] 功能:Rd|[A6]→Rd 说明:将Rd和A6指定单元的数据进行逻辑或操作,结果送 Rd寄存器。 格式2:Rd =Rs|[A16] 功能:Rs|[A16]→Rd
R1|=[R2];
//R1的值变为0xFFFF,Z=0,N=1
第15页
2021年12月8日星期三
1.3 逻辑异或指令 逻辑异或影响标志位N和Z,寻址方式有以下几种。 1. 立即寻址 格式1:Rd^=IM6或Rd= Rd^IM6 功能:Rd^IM6→Rd 说明:将Rd的数据与6位立即数进行逻辑异或操作,结果
格式:TEST Rd,Rs 说明:将Rd 与Rs 的数据进行逻辑与操作,不存储结果,只 影响N和Z标志位。 例如,假设初始时标志位分别为N=0,Z=1,S=0,C=1。
第18页
2021年12月8日星期三
说明:将Rs的数据和A16指定存储单元的数据进行逻辑异 或操作,结果送Rd寄存器。
逻辑运算类指令
标志位
解释
P OAC VCY
√ × × × 累加器A中的内容和直接地址单元中的内容执 行逻辑或操作。结果存在累加器A中
√ × × × 累加器A的内容和立即数执行逻辑或操作。结 果存在累加器A中
√ × × × 累加器A的内容和寄存器Rn的内容执行逻辑或 操作。结果存在累加器A中
√ × × × 累加器A的内容和工作寄存器Ri指向的地址单 元中的内容执行逻辑或操作。结果存在累加器 A中
单片机原理与应用
逻辑运算类指令
逻辑运算指令共有24条 有与、或、异或、求反、左右移位、清0等逻辑操作 有直接、寄存器和寄存器间址等寻址方式。
1. 清零指令(1条)
指令
功能
标志位 解释
P OA C VC Y
CLR A
A ←0
√ × × × 累加器A中的内容清0
2.求反指令(1条)
指令功能Βιβλιοθήκη 标志位√ × × × 累加器A的内容和工作寄存器Ri指向的地址单元中 的内容执行逻辑异或操作。结果存在累加器A中
√ × × × 累加器A的内容和立即数执行逻辑异或操作。结果 存在累加器A中
√ × × × 累加器A的内容和寄存器Rn中的内容执行逻辑异 或操作。结果存在累加器A中
× × × × 直接地址单元中的内容和累加器A的内容执行逻辑 异或操作。结果存在直接地址单元中
XRL A,Z
CPL A
ORL A,R1 MOV F,A SJMP $
;A ← (X) ;A ← (A)∧(Y) ;A内容暂存 ;A ← (Y)
;A ← (Y) (Z)
; A ←()()
;得到输出 ;存输出
单片机原理与应用
× × × × 直接地址单元中的内容和累加器A的内容执行 逻辑或操作。结果存在直接地址单元中
逻辑运算指令
2023年10月17日7时30分
DSP原理及应用
19
逻辑运算指令
(5)测试操作指令
’C54x共有5条测试操作指令。
① BIT
指令格式: BIT Xmem,BITC
操 作 数: Xmem——双数据存储操作数
BITC——测试位的位代码, 取值:0~15
指令功能: (Xmem(15-BITC))→TC
功能说明: 将Xmem的指定位复制到TC位。
2023年10月17日7时30分
DSP原理及应用
15
(4)移位操作指令
⑤ 条件移位
指令格式: SFTC src
操作数src:累加器A或B
指令功能: If src=0 Then 1 → TC
Else If src(31)=src(30)
Then src<<1 → src
0 → TC
Else
1 → TC
2023年10月17日7时30分
DSP原理及应用
4
逻辑运算指令
(2)或运算指令 或运算指令共计5条。
指令格式:操作码 源操作数 [,移位数] ,目的操作数
1
OR Smem
,src
2
OR
#lk [,SHFT] ,src[,dst]
3
OR
#lk
16
,src[,dst]
4
OR
src [,SHIFT] [,dst]
2023年10月17日7时30分
DSP原理及应用
14
④ 算术移位 执行过程:
当SHIFT > 0时,进行算术左移 1) src的第(39-SHIET)位复制到进位位C; 2) 40位src左移SHIFT位,结果存入src或dst; 3) 将0置入dst的低SHIFT的各位 0写入dst((SHIFT-1)~0)
基本逻辑指令基础知识讲解
第一节 基本逻辑指令 第二节 编程的规则与技巧 第三节 基本逻辑指令的应用 本章小结
第一节 基本逻辑指令
一、LD、LDI、OUT 指令 二、AND、ANI指令 三、OR、ORI 指令 四、ANB、ORB 指令 五、MPS、MRD、MPP 六、指M令C、MCR 指令 七、SET、RST 指令 八、PLS、PLF 指令 九、NOP、END 指令
母线可以省略; ❖ 线圈可以并联,不能串联连接; ❖ 应尽量避免双线圈输出。
第二节 编程的基本规则与技巧
二、编程的技巧
❖ 并联电路上下位置可调,应将单个触点的支路放下面。
X4 X1 X2
Y0
ORB
不好!
0 LD X4 1 LD X1 2 AND X2 3 ORB 4 OUT Y0
X1 X2 Y0
X4
九、PLF、PLS 指令
❖ 指令的梯形图
X0 PLS M0
M0
SET
Y0
X1
PLF
M1
X0
M1
X1
RST
Y0
M0
M1
Y0
0 LD X0 1 PLS M0 2 LD M0 3 SET Y0 4 LD X1 5 PLF M1 6 LD M1 7 RST Y0
第一节 基本逻辑指令
十、NOP、END 指令
六、MPS、MRD、MPP 指令0 LD X1
❖ 梯形图(一层栈例)
1 MPS 2 LDI X2
MPS
X1
X2 M0
3 AND M0 4 OR X0
Y1
5 ANB
X0
6 OUT Y1
X3
MPP
X4
X5
7 MPP
算术与逻辑运算指令PPT课件
第2页/共45页
算术与逻辑运算指令
次高位进位 • 溢出O:当进行8位或16位数的加法或减法运算时,O = 最高位进位(借位) (借位)
• 49H + 6DH = 0100 1001B + 0110 1101B = 1011 0110B • 最高位(8th)无进位,次高位(7th)有进位 • O=1,有溢出
第9页/共45页
加法、减法与比较指令
• 带进位(借位)加法(减法)指令 • 指令形式:ADC/SBB REG/MEM, REG/MEM/imm • 目的操作数=目的操作数±源操作数±C(进位标志位) • 与ADD/SUB指令形式一致 • 实现位宽大于16位的加法/减法 • BX-AX+DX-CX
ADC
LEA SI, DATA2; 装载DATA2 MOV CX, [SI] MOV DX, [SI+2]
ADD AX, CX;计算BX-AX+DX-
CX|DATA1+DATA2
ADC BX, DX
• STACK SEGMENT • DW 128 DUP(0) • ENDS • CODE SEGMENT
LEA SI, RESULT;存储结果 MOV [SI], AX MOV [SI+2], BX ENDS END 代ST码ART
第8页/共45页
加法、减法与比较指令
• 寄存器加法/减法
• 操作数均为寄存器 • ADD/SUB AX, BX; AX = AX ± BX
• 立即数加法/减法
• 源操作数为立即数 • ADD/SUB AX, 100H • ADD/SUB WORD PTR[DI], 100H • 内存与寄存器加法/减法 • ADD/SUB AX, [DI] • ADD/SUB AX, NUM • ADD/SUB AX, [DI+2]
逻辑运算和移位指令
奇数处理
… EVEN:偶数处理 检测(AL)的最低位是否为0,若为0转EVEN
6
3、OR(Lgical inclusive or )逻辑“或”指令
∧ 格式:OR dset, src;(dset)←(dset) dest: 寄存器、存储器。 (src)
src: 立即数、寄存器、存储器。
执行操作: 进行按位“或”运算 两位操作数中任一位为1(或都为1), 则该位(结果)=1, 否则为0。
19
执行操作:相当于无符号数的×2功能。
SHL/SAL指令操作示意图如下图所示:
dest
CF
0
指令格式举例: SHL AH,1
SAL SI, CL
SAL WORD PTR [BX+5] ,1 SHL BYTE PTR , CL
20
(2)、SHR (Shift logical right )逻辑右移指令
否则:无变化时,OF = 0
CF根据各条指令的规定设置。 SF、ZF、PF,AF无定义。
↕
↕
↕
循环移位指令:SF、ZF、PF、AF不影响。
OF、CF影响情况在指令中讲:
ROL、 RCL影响标志OF、CF情况相同 ;
ROR 、 RCR影响标志OF、CF情况相同 。
18
1、 算逻移位指令( 4条 ) : SHL , SHR, SAL , SAR
dest: 寄存器、存储器。
执行操作:进行“与”运算, 两位中有一位为0(或二位都为0),则结 果 为0,否则为1。
操作类型举例: AND AL, 0FH AND CX, DI AND AND SI, MEM_NAME ALPHA [DI], AX ;寄存器 ∧ 立即数 ; 寄存器 ∧ 寄存器 ; 寄存器 ∧ 存储器 ; 存储器 ∧ 寄存器
逻辑运算类指令
位置位和清零指令
• • • • • CLR C; CY ←0 CLR bit; bit ←0 SETB C; CY ←1 SETB bit; bit ←1 功能:把进位标志位CY和位地址bit中的内容清 0或置1。 • 例:CL • • • • • • • • • • ANL C, bit; C ←C∧( bit) ANL C, /bit; C ←C∧( bit) ORL C, bit; C ←C∨( bit) ORL C, /bit; C ←C∨( bit) CPL C;C ←C CPL bit; bit ← (bit) 说明:除最后一条指令外,都以CY 为目的操作数,“/bit” 表示将位单元bit的内容取反后再运算。 例:已知X、Y、Z为三个位地址,说明下段程序的功能。 MOV C,Y ANL C,/Y ANL C,/X ORL C,Z MOV Z,C MOV Z,C MOV C,X
逻辑运算类指令
• 包括与、或、非、异或、清0及移位等共24条;一般不影响PSW中的标 志位;助记符有:ANL、ORL、XRL、RL、RLC、RR、RRC、CLR和 CPL共9种。 • 一、逻辑与指令 – ANL A,Rn ;A←(A)∧( Rn) – ANL A,direct;A←(A)∧(direct) – ANL A,@Ri ;A←(A)∧(( R)) – ANL A,#data;A←(A)∧data – ANL direct,A; direct ←(direct)∧(A) – ANL direct, #data ; direct ←(direct)∧data – 功能(1)前4条是A的内容与源操作数所指出的内容进行按位逻辑 与运算其结果仍送回A中,仅影响PSW中的P标志位;(2)后两条 指令是将直接地址direct单元中的内容和A或立即数按位进行逻辑与 运算,其结果仍送回direct单元中。 – 作用:用于对某些位清“0”,其它位不变。(例3-27)
3-06 逻辑操作类指令
ORL A,@Ri ;(A)∨((Ri))→A,i=0,1
ORL direct,A
;(direct)∨(A)→direct
ORL direct,#data ;(direct)∨#data→direct
是在所指定的变量之间执行位的“逻辑或”操作,结果存到目的 变量寄存器或存储器中。
8
逻辑操作类指令
9.逻辑或指令 【例】 (P1)=05H,(A)=33H,执行指令 ORL P1,A 运算式为
;(A)∧(Rn)→A,n=0~7 ;(A)∧(direct)→A
A,#data ;(A)∧#data→A
A,@Ri
;(A)∧((Ri))→A,i=0~1
direct,A
;(direct)∧(A)→direct
direct,#data ;(direct)∧#data→direct
是在指定的变量之间以位为基础进行“逻辑与”操作,结果存放到目的 变量所在的寄存器或存储器中。
结果:(P1)=35H。
9
逻辑操作类指令
10.逻辑异或指令
XRL
A,Rn
;(A)⊕(Rn)→A,n=0~7
XRL
A,direct
;(A)⊕(direct)→A
XRL
A,@Ri
;(A)⊕((Ri))→A ,i=0,1
XRL
A,#data
;(A)⊕#data→A
XRL
direct,A
;(direct)⊕(A)→direct
不影响标志位。如下图所示。
4.带进位左环移指令
RLC
A
将累加器A的内容和进位标志位Cy一起向左环移一位如下图所示。
3
逻辑操作类指令
5.右环移指令
第九节 逻辑运算类指令和位操作指令
9.1 逻辑运算指令 9.1.1 逻辑与运算指令
逻辑与运算指令举例
例:设(A)=0C3H(11000011B),(R0) =0C3H(11000011B),( ) ),(R0 =0AAH(10101010B),执行指令: =0AAH(10101010B),执行指令: ),执行指令 ANL A,R0 (逻辑与运算用符号∧表示) A, 逻辑与运算用符号∧表示) (A)=1执行结果:( :(A =82H(10000010B) 执行结果:(A)=82H(10000010B) 指令ANL常用来屏蔽某些不用位 常用来屏蔽某些不用位, 例:指令ANL常用来屏蔽某些不用位,方法是将该位 0”相 用“0”相“与”,这种操作的目的操作数常用直接地 址寻址,而源操作数则用立即数。 址寻址,而源操作数则用立即数。如 ANL P1,#01100110 B P1, 执行结果: P1口锁存器的第 口锁存器的第0 执行结果:将P1口锁存器的第0、3、4、7位的内容 屏蔽掉。不管P1口中的这些位原值为何值 口中的这些位原值为何值, 屏蔽掉。不管P1口中的这些位原值为何值,经与操作 后均屏蔽为0 而其它位保持原值不变。 后均屏蔽为0,而其它位保持原值不变。
9.1.2 逻辑或运算指令
ORL A,Rn A, ORL A,direct A, ORL A,@Ri A, ORL A,#data A, ORL direct,A direct, ORL direct,#data direct, 和前面逻辑与指令类似,这里前4 和前面逻辑与指令类似,这里前4条指令的操作结果 存放在A 后两条指令将结果存放在直接地址中。 存放在A中,后两条指令将结果存放在直接地址中。
第九节 逻辑运算类指令和 位操作指令
ANL A,Rn A, ANL A,direct A, ANL A,@Ri A, ANL A,#data A, 上述指令的目的操作数为累加器A的内容, 上述指令的目的操作数为累加器A的内容,源操作数 有四种寻址方式:寄存器Rn 直接和间接寻址、 Rn、 有四种寻址方式:寄存器Rn、直接和间接寻址、立 即数。两操作数进行“ 运算后, 即数。两操作数进行“与”运算后,结果保留在累加 响任何标志位。 器A中,不影响任何标志位。 ANL direct,A direct, ANL direct,#data direct, 上述指令的目的操作数为直接地址寻址单元内容, 上述指令的目的操作数为直接地址寻址单元内容,源 操作数有两种寻址方式: 和立即数。 操作数有两种寻址方式:累加器A和立即数。运算结 果保留在直接寻址单元中,不影响任何标志位。 果保留在直接寻址单元中,不影响任何标志位。
(周六看)微机09指令6逻辑左右移循环
(1)简单条件转移指令 )
(2)无符号数条件转移指令 )
• 无符号数条件转移指令表
• 【例】比较无符号数大小,将较大的数存放 比较无符号数大小, AX寄存器。 寄存器。 寄存器 • CMP AX, BX ;(AX)-(BX) , ) ) • JNB NEXT ; 若 AX>=BX, 转移到 , NEXT • XCHG AX,BX ;若AX<BX,交换 , , • NEXT:… :
27
SHR指令的执行 指令的执行
• • • SHR指令格式:SHR OPR, CNT 指令格式: 指令格式 功能:逻辑右移CNT位 功能:逻辑右移 位 每右移一位,相当于对无符号数进行除2操作 操作。 每右移一位,相当于对无符号数进行除 操作。
D15 或D7 0 D0 CF
SHR指令的逻辑右移操作示意图
34
[例] 例
• 循环指令举例
ROL BX,CL , ;将 BX中的内容不带进位位循环左移 中规 将 中的内容不带进位位循环左移 中的内容不带进位位循环左移CL中规 定的次数 ROR WORD PTR[SI],1 , ;将物理地址为 将物理地址为DS*16+SI单元的字不带进位循 将物理地址为 单元的字不带进位循 环右移1次 环右移 次
• TEST指令 指令
– 若要检测 中的最低位是否为1,若为 则转 若要检测AL中的最低位是否为 ,若为1则转 中的最低位是否为 否则继续顺序执行。 移,否则继续顺序执行。可用以下二条指令 实现: 实现: TEST AL,01H , JNZ THERE
22
逻辑运算举例-3 逻辑运算举例 • XOR指令 指令
29
[例] 例
• 已知变量 中为一无符号字节数,请用移位 已知变量Y中为一无符号字节数, 中为一无符号字节数 指令完成(Y)*10计算,积放在 中。 计算, 指令完成 计算 积放在AX中
逻辑运算指令
例3:测试AL的bit7,bit5,bit2是否都是1。
AND AL, 1010 0100B CMP AL, 1010 0100B JZ YES <not all 1> …… YES:
6
(2) 逻辑“或” OR
对两个操作数进行按位逻辑”或”操作。 格式:OR dst, src 功能: (dst)∨(src)→(dst) 用途:对操作数的某几位置1;
移动次数count只能为1或CL。 如:SHL AX,1
SHL AL,CL
“0”
17
逻辑右移指令SHR(Shift logical Right)
格式: SHR dst,count
功能:
dst
CF
D7 D6 D5 D4 D3 D2 D1 D0
“0”
0 D7 D6 D5 D4 D3 D2 D1
D0
特点是移出的位进入进位位CF,空出的 位用“0”填入。
3.4 逻辑运算指令
● 运算规则:按位操作,无进/借位,包括以
下两类:
•
逻辑位运算
•
移位、循环移位
● 对标志位的影响(除NOT指令外):
CF OF SF ZF PF AF 0 0 * * * 无定义
根据运算结果设置
1
1、逻辑运算指令
有5条指令。 (1)“与”运算指令AND (2)“或”运算指令OR (3)“异或”运算指令XOR (4)“非” 运算指令NOT (5)测试指令TEST
通用寄存器 存储器
立即数
通用寄存器
11
三种运算指令的主要作用
指令
作用
举例
AND 使目的操作数某些位不变, 保留AX的最后4位
某些位变成0
逻辑运算类指令.ppt
;(A)=F0H
END
;结束
《单片机原理与应用》教学课件
LED闪烁编程
单片机P0端口引脚外接 LED发光二极管电路。 P0.0 — P0.7接D1—D7 输出高电平 — LED灭 输出低电平 — LED亮
编程: 控制LED发光二极
管间隔亮灭闪烁。
《单片机原理与应用》教学课件
源程序:
START: LOOP:
NOP
END
;结束
55H FFH AAH
01010101 11111111 10101010
异或运算技巧:
异或运算有见1取反 的特点,通常用来将数 据的某几位取反,其他 位保持不变。
《单片机原理与应用》教学课件
四、清零指令和取反指令
1、清零指令(1条)
指令格式: CLR A
指令功能:将累加器A中的数据设置为零。
0
=1 =0 =0 =0 =0 =0 =1 =0
CY= 1
A7 A6 A5 A4 A3 A2 A1 A0 =0 =0 =0 =0 =0 =1 =0 =0
《单片机原理与应用》教学课件
例如:
ORG 0000H
;程序开始
MOV PSW , #80H ;CY=1
MOV A , #02H ;(A)=02H
RLC A
累加器移位操作: (RL,RLC,RR,RRC—4条)
《单片机原理及应用》教学课件
逻辑与(ANL),逻辑或(ORL),逻辑异或(XRL):
指令形式
Byte
Tm
ANL(ORL,XRL) direct, A
2
1
ANL(ORL,XRL) direct,#data
3
2
ANL(ORL,XRL) A,
逻辑运算指令
逻辑运算指令逻辑运算指令 1.ANL类指令(6条) ANL类是逻辑与指令,其功能是将源操作数作数内容和目的操作数内容按位相与,结果存入目的操作数指定单元中,源操作数不变。
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) 例设A=F6H,(30H)=0FH 执行ANL A, 30H ;A∩ (30H) →A 操作如下: 11110110 (F6H) ∩ 00001111 (0FH)注意:按位相与 00000110 (06H) 结果:A=06H, 30H地址内容不变,即(30H)=0FH 若执行ANL 30H, A ;(30H)∩ A→(30H) 操作同上,结果放在30H地址中,A中内容不变,即(30H)=06H,A=F6H。
2.ORL类指令(6条) ORL类指令是逻辑或指令,其功能是将源操作数作数内容和目的操作数内容按位逻辑或,结果存入目的操作数指定单元中,源操作数不变。
ORL A, Rn ;A∪Rn→A ORL A,direct ;A∪(direct) →A ORL A, @Ri ;A∪(Ri) →A ORL A, #data ;A∪data→A ORL direct, A ;(direct)∪A→(direct) ORL direct, #data ;(direct)∪data→(direct) 或运算和与运算过程类似,这里不再举例。
逻辑运算指令课件
案例二
在决策分析中,我们可能需要比较多个方案并选择最优的一个。例如,比较三个供应商 的报价和质量,选择性价比最高的一个。这里可以使用逻辑或和逻辑与运算进行条件判
断和选择。
感谢您的观看
THANKS
示例2
假设有两个变量C和D,它们的值 分别为false和false。则C OR D的 结果为false,因为两个变量都为假。
逻辑或运算的应用场景
条件判断
在程序中,逻辑或运算常用于条件判断语句 中,以实现某些条件下的执行路径。例如, 在if语句中,可以使用逻辑或运算符来检查多 个条件中的至少一个是否满足。
数据筛选
根据多个条件进行筛选,如从数 据库中查询满足多个条件的记录 。
安全验证
在登录或支付等场景中,使用逻 辑与运算符验证用户输入的密码 、验证码等是否正确。
01
条件判断
在程序中,使用逻辑与运算符连 接多个条件,进行复杂的
在流程控制中,使用逻辑与运算 符确保所有条件都满足时,执行 相应的操作或进入特定的分支。
数据筛选
在数据处理和分析中,逻辑或运算可以用于 筛选符合多个条件的数据。通过将多个条件 用逻辑或连接,可以快速找到满足至少一个 条件的记录。
事件触发
在事件驱动的系统中,逻辑或运算可以用于 触发某些事件。例如,当传感器检测到某个 物体接近时,可以使用逻辑或运算符来比较 多个传感器的读数,以确定是否需要触发警 报或其他动作。
案例二
一个学生想要申请某大学的奖学金,需要满足多个条件(如成绩要求、社会实践经验等)。同样可以使用逻辑 与运算来确保学生满足所有申请条件。
利用逻辑运算进行数据筛选
案例一
在处理大量数据时,我们可能需要筛选出满足特定条件的数据。例如,在数据库中查找所有年龄大于 18岁且性别为女的用户,可以使用逻辑与和逻辑或运算来筛选出符合条件的数据。
plc基本逻辑指令及编辑方法
plc基本逻辑指令及编辑方法
PLC的基本逻辑指令及编辑方法包括以下几个部分:
1. LD(读取):表示一个与输入母线相连的常开接点指令,用于常开接点接到母线上的逻辑运算起始。
2. LDI(读取反):表示一个与输入母线相连的常闭接点指令,用于常闭接点接到母线上的逻辑运算起始。
3. AND(与指令):用于单个常开接点的串联。
4. ANI(与非指令):用于单个常闭接点的串联。
5. OR(或指令):用于单个常开接点的并联。
6. ORI(或非指令):用于单个常闭接点的并联。
7. OUT:输出指令,目标元件是Y,M,S,T,C。
8. SET(置位指令):使动作保持。
9. RST(复位指令):使操作保持复位。
10. PLS(输入信号上升沿产生脉冲输出):目标元件为Y,M,但特殊辅助继电器不能作为目标元件。
11. PLF(输入信号下降沿产生脉冲输出):目标元件为Y,M,但特殊辅助继电器不能作为目标元件。
12. INV:该指令用于运算结果的取反。
此外,还有NOP(无操作指令)和END(结束指令)等基本逻辑指令。
以上信息仅供参考,如需了解更多信息,建议查阅PLC编程相关书籍或咨询专业人士。
逻辑操作指令
3.2.3逻辑操作指令
(3) SAR 格式:SAR DST,CNT 操作:最高有效位保持不变同时右移(称符号复制),如图
说明:与SHL/SAL 指令说明相同 。对于有符号数,SAR右 移一次相当于除以2。例如:已知(DS)=8000H,(DI) =4000H,(84000H)=00C8H(十进制数为200
微型计算机原理与接口技术
微型计算机原理与接口技术
逻辑操作指令
1.逻辑指令 (1) AND 格式:AND DST,SRC 操作:(DST)← (DST)∧ (SRC),对两个操作数按位作
例如:要使(AL)中D5和D1两位为零,用AND 指令来完成, 所需设置源操作数的立即数为0DDH,即11011101B。MOV AL, 0EFH;(AL)← 0EFH AND AL,0DDH;(AL)← (AL)∧ 0DDH
例如:要求测试(AL)中D7,D4,D2 位是否同时为0,用 TEST
MOV AL,0D4H TEST AL,94H;(AL)∧ 10010100B 对应要测试的位将源操作数中相应位设为1,其余位为0,然后用 条件转换指令来判断ZF位是否为1 若要测试某些位是否为1,则应先将该数取反,然后用TEST 指 令测试即可.
____________________
1100 0010 要维持某位不变与“0”相“异或”;要使某位取反与 “1”相“异或”结果为零。
3.2.3逻辑操作指令
(5) TEST 格式:TEST OPR1,OPR2 操作:(OPR1)∧(OPR2 按位相与,结果不保存,只根据其特征置响应状态标志位。说明: 其中OPR1 可以是除立即数之外的任一种寻址方式,OPR2可以
逻辑运算指令
• MOV DPH,A
• MOV A,DPL
• XOR A,#11110000B
• MOV DPL,A
9、用3种方法实现将A中数据乘2运算
• MOV R0,A • ADD A,R0
• MOV B,#02H • MUL AB
• RL A
逻辑运算指令
• 该类指令包含与、或、异或和累加器A清零 和求反20条,移位指令4条。。这些指令都不 会影响PSW的各标志位。具体指令见下页表1:
逻辑运算和移位指令
与、或、异或指令的结构(6×3)
• 一、逻辑与运算指令组 • ANL A,Rn ;A ←(A)Λ(Rn) • ANL A,direct; A ←(A)Λ(direct) • ANL A,@Ri; A ←(A)Λ((Ri)) • ANL A, #data; A ←(A)Λdata • ANL direct,A ; direct ←(A)Λ(direct) • ANL direct,#data ; direct ←(direct)Λdata • 指令的功能是:将两个操作数的内容按位进
• ADDC A,#20H • INC A • DIV AB • ORL A,#32H • XCH A,20H • CPL A • RLC A
执行以下指令后结果为? 初始(A)=94H,C=1。
• RL A • RLC A • RR A • RRC A
• RL A ; (A)=29H=0010 1001,C=1 • RLC A ; (A)=53H=0101 0011,C=0 • RR A ; (A)=0A9H=1010 1001,C=0 • RRC A ;(A)=54H01010100,C=1
• 或运算举例:假设(A)=60H,(30H)=79H,则执行指令
逻辑运算和移位指令
……
;否则(正数)不转移
MINUS: … …
……
8
2.移位指令
(1)非循环移位指令
算术左移指令 SAL(Shift Arithmetic Left)
算术右移指令 SAR(Shift Arithmetic Right) 逻辑左移指令 SHL(Shift Left)
逻辑右移指令 SHR(Shift Right) 这4条指令的格式相同,以SAL为例:
12
(2)循环移位指令
不含进位位的循环左移指令 ROL 不含进位位的循环右移指令 ROR 含进位位的循环左移指令 RCL 含进位位的循环右移指令 RCR
➢格式同非循环移位指令。 ➢移位位数放在CL寄存器中,如果只移1位, 也可以直接写在指令中。 ➢循环移位指令只影响标志位CF和OF。
13
这4条指令的功能如下图示:
MOV CL,4 SHR AL,CL ;AL中的内容右移4位 ➢影响C,P,S,Z,O标志。 ➢结果未溢出时: 左移1位≡操作数*2 右移1位≡操作数/2
11
例:把AL中的数x乘10 因为10=8+2=23+21,所以可用移位实现乘10 操作。程序如下:
SAL AL,1 ; 2x MOV AH,AL SAL AL,1 ; 4x SAL AL,1 ; 8x ADD AL,AH ; 8x+2x = 10x
……
; if not matall ‘1’
3
(2) 逻辑”或” OR
对两个操作数进行按位逻辑”或”操作。 格式:OR dest, src 用途:对操作数的某几位置1;对两操作数
进行组合。
例1:把AL中的非压缩BCD码变成相应十进制 数的ASCII码。 OR AL, 30H
第09讲 逻辑操作类指令
第九讲逻辑操作类指令(一)教学方法: 讲授法教学时数:2学时教学目的:1、了解控制转移类指令的作用2、掌握无条件转移指令的应用3、掌握有条件转移指令的用法教学重点:无条件转移指令的应用教学难点:转移地址的确定教学环节组织教学:(2分钟)检查学生人数,强调作业要求复习旧课:111条指令,共分几大类?数据传送类指令又分成多少类?引入新课:§3-4 逻辑操作类指令共分两大类:单字节逻辑操作,双字节逻辑操作,共24条。
一、单字节逻辑操作指令CLR A ;(A)0CPL A A中8位按位求反。
循环左移、右移指令:RL ARLC ARR ARRC A注:左移一位相当于乘2;右移一位相当于除2。
二、双字节逻辑操作指令“与操作”:ANL A,Rn ;(A)(A)∧(Rn),以下类同。
ANL A,directANL A,@RiANL A,#dataANL direct,AANL direct,#data例1、(P1)= 35H,使其高4位输出0,低4位不变。
解;ANL P1,#0FH此做法称为“屏蔽”位。
“或操作”:ORL A ,Rn ; (A) (A )∨(Rn ),以下类同。
ORL A ,directORL A ,@RiORL A ,#dataORL direct ,AORL direct ,#data例2、将A 中的低3位送入P1中,并且保持P1中高5位不变。
ANL A ,#07HANL P1,#0F8HORL P1,A ;(P1)= P 17P 16P 15P 14P 13A 2A 1A 0 这称为“数位组合”。
“异或操作”:XRL A ,Rn ; (A ) (A )⊕(Rn ),以下类同。
XRL A ,directXRL A ,@RiXRL A ,#dataXRL direct ,AXRL direct ,#data例3、设(P1)= 0B4H = 10110100B ,执行:XRL P1,#00110001B结果按# 0 0 1 1 0 0 0 1 取反,即:(P1)= 1 0 0 0 0 1 0 1 B = 85H这称为“指定位取反”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教学方法:讲授法
教学时数:2学时
教学目的:
1、了解控制转移类指令的作用
2、掌握无条件转移指令的应用
3、掌握有条件转移指令的用法
教学重点:
无条件转移指令的应用
教学难点:
转移地址的确定
复习:111条指令,共分几大类?数据传送类指令又分成多少类?
§3-4 逻辑操作类指令
共分两大类:单字节逻辑操作,双字节逻辑操作,共24条。
一、单字节逻辑操作指令
CLR A ;(A)0
CPL A A中8位按位求反。
循环左移、右移指令:
RL A
RLC A
RR A
RRC A
注:左移一位相当于乘2;右移一位相当于除2。
二、双字节逻辑操作指令
“与操作”:
ANL A,Rn ;(A)(A)∧(Rn),以下类同。
ANL A,direct
ANL A,@Ri
ANL A,#data
ANL direct,A
ANL direct,#data
例1、(P1)= 35H,使其高4位输出0,低4位不变。
解;ANL P1,#0FH
此做法称为“屏蔽”位。
“或操作”:
ORL A,Rn ;(A)
(A)∨(Rn),以下类同。
ORL A,direct
ORL A,@Ri
ORL A,#data
ORL direct,A
ORL direct,#data
例2、将A中的低3位送入P1中,并且保持P1中高5位不变。
ANL A,#07H
ANL P1,#0F8H
ORL P1,A ;(P1)= P17P16P15P14P13A2A1A0
这称为“数位组合”。
“异或操作”:
XRL A,Rn ;(A )(A)⊕(Rn),以下类同。
XRL A,direct
XRL A,@Ri
XRL A,#data
XRL direct,A
XRL direct,#data
例3、设(P1)= 0B4H = 10110100B,执行:
XRL P1,#00110001B
结果按# 0 0 1 1 0 0 0 1 取反,即:
(P1)= 1 0 0 0 0 1 0 1 B = 85H
这称为“指定位取反”。
在上述ANL、ORL、XRL操作中,用于端口操作时,无论P0 ~ P3是第一,还是第二操作数,都遵循“读—修改—写”端口锁存器的操作。
小结:
1、逻辑操作分为哪两类操作?
2、循环移位指令每执行一次,移几位?
3、ANL、ORL、XRL指令有哪些使用技巧?版书设计。