13课单片机逻辑与或异或指令祥解

13课单片机逻辑与或异或指令祥解

ID:8925920

大小:31.50 KB

页数:4页

时间:2018-04-12

13课单片机逻辑与或异或指令祥解_第1页
13课单片机逻辑与或异或指令祥解_第2页
13课单片机逻辑与或异或指令祥解_第3页
13课单片机逻辑与或异或指令祥解_第4页
资源描述:

《13课单片机逻辑与或异或指令祥解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ANLA,Rn;A与Rn中的值按位'与',结果送入A中ANLA,direct;A与direct中的值按位'与',结果送入A中ANLA,@Ri;A与间址寻址单元@Ri中的值按位'与',结果送入A中ANLA,#data;A与立即数data按位'与',结果送入A中ANLdirect,A;direct中值与A中的值按位'与',结果送入direct中ANLdirect,#data;direct中的值与立即数data按位'与',结果送入direct中。这几条指令的关键是知道什么是逻辑与。这里的逻辑与是指按位与例

2、:71H和56H相与则将两数写成二进制形式:(71H)01110001(56H)00100110结果00100000即20H,从上面的式子能看出,两个参与运算的值只要其中有一个位上是0,则这位的结果就是0,两个同是1,结果才是1。理解了逻辑与的运算规则,结果自然就出来了。看每条指令后面的注释下面再举一些例程来看。MOVA,#45H;(A)=45HMOVR1,#25H;(R1)=25HMOV25H,#79H;(25H)=79HANLA,@R1;45H与79H按位与,结果送入A中为41H(A)=41HA

3、NL25H,#15H;25H中的值(79H)与15H相与结果为(25H)=11H)ANL25H,A;25H中的值(11H)与A中的值(41H)相与,结果为(25H)=11H在知道了逻辑与指令的功能后,逻辑或和逻辑异或的功能就很简单了。逻辑或是按位“或”,即有“1”为1,全“0”为0。例:10011000或01100001结果11111001而异或则是按位“异或”,相同为“0”,相异为“1”。例:10011000异或01100001结果11111001而所有的或指令,就是将与指仿中的ANL换成ORL,

4、而异或指令则是将ANL换成XRL。即或指令:ORLA,Rn;A和Rn中的值按位'或',结果送入A中ORLA,direct;A和与间址寻址单元@Ri中的值按位'或',结果送入A中ORLA,#data;A和立direct中的值按位'或',结果送入A中ORLA,@Ri;A和即数data按位'或',结果送入A中ORLdirect,A;direct中值和A中的值按位'或',结果送入direct中ORLdirect,#data;direct中的值和立即数data按位'或',结果送入direct中。异或指令:XR

5、LA,Rn;A和Rn中的值按位'异或',结果送入A中XRLA,direct;A和direct中的值按位'异或',结果送入A中XRLA,@Ri;A和间址寻址单元@Ri中的值按位'异或',结果送入A中XRLA,#data;A和立即数data按位'异或',结果送入A中XRLdirect,A;direct中值和A中的值按位'异或',结果送入direct中XRLdirect,#data;direct中的值和立即数data按位'异或',结果送入direct中。练习:MOVA,#24HMOVR0,#37HORLA

6、,R0XRLA,#29HMOV35H,#10HORL35H,#29HMOVR0,#35HANLA,@R0四、控制转移类指令无条件转移类指令短转移类指令AJMPaddr11长转移类指令LJMPaddr16相对转移指令SJMPrel上面的三条指令,如果要仔细分析的话,区别较大,但开始学习时,可不理会这么多,统统理解成:JMP标号,也就是跳转到一个标号处。事实上,LJMP标号,在前面的例程中我们已接触过,并且也知道如何来使用了。而AJMP和SJMP也是一样。那么他们的区别何在呢?在于跳转的范围不一样。好比

7、跳远,LJMP一下就能跳64K这么远(当然近了更没关系了)。而AJMP最多只能跳2K距离,而SJMP则最多只能跳256这么远。原则上,所有用SJMP或AJMP的地方都能用LJMP来替代。因此在开始学习时,需要跳转时能全用LJMP,除了一个场合。什么场合呢?先了解一下AJMP,AJMP是一条双字节指令,也就说这条指令本身占用存储器(ROM)的两个单元。而LJMP则是三字节指令,即这条指令占用存储器(ROM)的三个单元。下面是第四条跳转指令。间接转移指令JMP@A+DPTR这条指令的用途也是跳转,转到什

8、么地方去呢?这可不能由标号简单地决定了。让我们从一个实际的例程入手吧。MOVDPTR,#TAB;将TAB所代表的地址送入DPTRMOVA,R0;从R0中取数(详见下面说明)MOVB,#2MULA,B;A中的值乘2(详见下面的说明)JMPA,@A+DPTR;跳转TAB:AJMPS1;跳转表格AJMPS2AJMPS3图2图3  应用背景介绍:在单片机开发中,经常要用到键盘,见上面的9个按钮的键盘。我们的要求是:当按下功能键A………..G时去完成不一样的功能。这用程序设计的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。