《7、80C51逻辑指 101101.ppt》由会员分享,可在线阅读,更多相关《7、80C51逻辑指 101101.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章80C51单片机指令系统单片机指令系统本讲教学内容:本讲教学内容:逻辑运算及移位类指令逻辑运算及移位类指令条件转移指令条件转移指令逻辑运算类指令逻辑运算类指令逻辑运算类指令逻辑运算类指令只按位进行逻辑运算,只按位进行逻辑运算,包括:包括:与、或、异或、清除、求反、移位与、或、异或、清除、求反、移位等操作。等操作。结果不影结果不影响响PSW中标志位。中标志位。助记符有助记符有ANL、ORL、XRL、RL、RLC、RR、RRC、CPL、CLR等九种。等九种。胆欲大,心欲小,智欲圆,行欲方;这组指令的助记符为这组指令的助记符为ANL,用符号用符号“”表示:表示:ANLA,Rn;(;(A)
2、(A)(Rn)ANLA,direct;(;(A)(A)(direct)ANLA,Ri;(;(A)(A)(Ri)ANLA,data;(;(A)(A)dataANLdirect,A;(;(direct)(direct)(A)ANLdirect,data;(;(direct)(drect)data指令功能是将目的地址单元中的数和源地址单元中的数按指令功能是将目的地址单元中的数和源地址单元中的数按“位位”相相“与与”,其结果放回目的地址单元中。,其结果放回目的地址单元中。逻辑逻辑“与与”运算指令运算指令胆欲大,心欲小,智欲圆,行欲方;例:设(例:设(A)A3H(10100011B),(R0)AAH(1
3、0101010B)。)。执行指令执行指令:ANLA,R0执行结果为(执行结果为(A)A2H(10100010B)。)。执行指令执行指令:ANLA,#0F0H执行结果为(执行结果为(A)A2H(10100000B)。)。这时这时ACC.7ACC.4位状态不变,位状态不变,ACC.3ACC.0位被清除。位被清除。逻辑逻辑“与与”运算指令用做清除或屏蔽某些位。运算指令用做清除或屏蔽某些位。胆欲大,心欲小,智欲圆,行欲方;这组指令的助记符为这组指令的助记符为ORL,用符号用符号“”表示:表示:ORLA,Rn;(;(A)(A)(Rn)ORLA,direct;(;(A)(A)(direct)ORLA,Ri
4、;(;(A)(A)(Ri)ORLA,data;(A)(A)#dataORLdirect,A;(direct)(direct)(A)ORLdirect,data;(direct)(direct)data指指令令功功能能是是将将目目的的地地址址单单元元中中的的数数和和源源地地址址单单元元中中的的数数按按“位位”相相“或或”,其结果放回目的地址单元中。,其结果放回目的地址单元中。逻辑逻辑“或或”运算指令运算指令胆欲大,心欲小,智欲圆,行欲方;例:设(例:设(A)A3H(10100011B),),(R0)45H(01000101B)。)。执行指令:执行指令:ORLA,R0执行结果:(执行结果:(A)E
5、7H(11100111B)。)。逻辑或运算指令用做指定位强迫置位。给某些位置逻辑或运算指令用做指定位强迫置位。给某些位置1,合并二个数中的合并二个数中的“1”。胆欲大,心欲小,智欲圆,行欲方;“异或异或”运算的运算规则为:运算的运算规则为:0 0=01 1=00 1=11 0=1逻辑逻辑“异或异或”运算指令运算指令胆欲大,心欲小,智欲圆,行欲方;这组指令的助记符为这组指令的助记符为XRL,用符号用符号“”表示:表示:XRLA,Rn;(;(A)(A)(Rn)XRLA,drect;(;(A)(A)(direct)XRLA,Ri;(;(A)(A)(Ri)XRLA,#data;(;(A)(A)data
6、XRLdirect,A;(;(direct)(direct)(A)XRLdirect,data;(;(direct)(direct)data指指令令功功能能是是将将目目的的地地址址单单元元中中的的数数和和源源地地址址单单元元中中的的数数按按“位位”相相“异或异或”,其结果放回目的地址单元中。,其结果放回目的地址单元中。逻辑逻辑“异或异或”运算指令运算指令胆欲大,心欲小,智欲圆,行欲方;例:设(例:设(A)A3H(10100011B),),(R0)45H(01000l0lB)。)。执行指令为执行指令为XRLA,R010100011 0100010111100110执行结果为(执行结果为(A)E6
7、H(111001l0B)。)。用于对目的操作数的某些位取反,也可以判两个数用于对目的操作数的某些位取反,也可以判两个数是否相等,若相等则结果为是否相等,若相等则结果为0。胆欲大,心欲小,智欲圆,行欲方;在在80C51中中,移移位位指指令令只只能能对对累累加加器器A进进行行移移位位,共共有有带带进进位位C和和不不带带进进位位C的的循循环环左左移移和和循循环环右右移移等等四四条指令。条指令。RLARRARLCARRCA对对于于带带进进位位的的循循环环移移位位,C的的状状态态由由移移入入的的数数位位决决定定,其他状态标志位不受影响。其他状态标志位不受影响。累加器移位累加器移位/循环指令循环指令胆欲大
8、,心欲小,智欲圆,行欲方;循环移位指令示意图循环移位指令示意图胆欲大,心欲小,智欲圆,行欲方;循环右移指令:循环右移指令:RRA它它是是将将累累加加器器的的内内容容逐逐位位循循环环右右移移一一位位,并并且且a0的的内容移到内容移到a7。此操作不影响标志位。此操作不影响标志位。例:设(例:设(A)A6H(10100110),),执行指令:执行指令:RRA,执行结果执行结果53H(01010011B)。)。累加器移位累加器移位/循环指令循环指令胆欲大,心欲小,智欲圆,行欲方;带进位循环右移指令带进位循环右移指令:RRCA它它是是将将累累加加器器的的内内容容和和进进位位位位一一起起循循环环右右移移一
9、一位位,并并且且a0移移入入进进位位位位CY,CY的的内内容容移移到到a7。此此操操作作不不影响影响CY之外的标志位。之外的标志位。例:设例:设(A)B4H(10110100B),(CY)1,执行指令:执行指令:RRCA执行结果为:执行结果为:(A)DAH(11011010B),(CY)0累加器移位累加器移位/循环指令循环指令胆欲大,心欲小,智欲圆,行欲方;循环左移指令:循环左移指令:RLA它它是是将将累累加加器器的的内内容容逐逐位位循循环环左左移移一一位位,并并且且a7的的内容移到内容移到a0。此操作不影响标志位。此操作不影响标志位。例:设(例:设(A)3AH(00111010B),),执行
10、指令:执行指令:RLA执行结果:(执行结果:(A)74H(01110l00B)。)。胆欲大,心欲小,智欲圆,行欲方;带进位循环左移指令带进位循环左移指令:RLCA它它是是将将累累加加器器的的内内容容和和进进位位位位一一起起循循环环左左移移一一位位,并并且且a7移移入入进进位位位位CY,CY的的内内容容移移到到a0。此此操操作作不不影响影响CY之外的标志位。之外的标志位。例:设(例:设(A)3AH(00111010B),(),(CY)1,执行指令:执行指令:RLCA执行结果为:执行结果为:(A)=75H(01110101B),(),(CY)0胆欲大,心欲小,智欲圆,行欲方;CPLA对对进进行行累
11、累加加器器的的内内容容逐逐位位取取反反,结结果果仍仍存存在在A中中。此操作不影响标志位。此操作不影响标志位。例:设(例:设(A)21H(00100001B),执行指令:执行指令:CPLA执行结果:(执行结果:(A)DEH(11011110B)。累加器按位取反指令累加器按位取反指令胆欲大,心欲小,智欲圆,行欲方;CLRA对累加器进行清对累加器进行清0,此操作不影响标志位。,此操作不影响标志位。例:设(例:设(A)44H,执行执行CLRA指令,指令,执行结果:(执行结果:(A)00H。累加器清累加器清0指令指令胆欲大,心欲小,智欲圆,行欲方;例例10:数据的拆分与拼装数据的拆分与拼装要求:从要求:
12、从(30H)=x7x6x5x4x3x2x1x0中取出高中取出高5位,从位,从(31H)=y7y6y5y4y3y2y1y0中取出低中取出低3位,拼装后存入位,拼装后存入40H中,中,(40H)=Y2Y1Y0X7X6X5X4X3地址地址 机器码机器码ORG0000H0000E530MOVA,30H0002C4SWAPA;X3X2X1X0X7X6X5X4000323RLA;X2X1X0X7X6X5X4X3左移了左移了5位位0004F540 MOV40H,A0006 53401FANL40H,#00011111B胆欲大,心欲小,智欲圆,行欲方;0009E531 MOVA,31H000B75F020MOVB,#20H000EA4MULAB;Y2Y1Y000000左移了左移了5位位000F54E0 ANLA,#11100000B00114240 ORL40H,A0013 2113HERE:AJMPHERE注:实现左移注:实现左移5位,采用了两种方法,即移位和乘法。位,采用了两种方法,即移位和乘法。胆欲大,心欲小,智欲圆,行欲方;