片机原理及应用第6讲逻辑运算指令及移位、转移指令

片机原理及应用第6讲逻辑运算指令及移位、转移指令

ID:39830340

大小:337.82 KB

页数:24页

时间:2019-07-12

片机原理及应用第6讲逻辑运算指令及移位、转移指令_第1页
片机原理及应用第6讲逻辑运算指令及移位、转移指令_第2页
片机原理及应用第6讲逻辑运算指令及移位、转移指令_第3页
片机原理及应用第6讲逻辑运算指令及移位、转移指令_第4页
片机原理及应用第6讲逻辑运算指令及移位、转移指令_第5页
资源描述:

《片机原理及应用第6讲逻辑运算指令及移位、转移指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、算术运算指令加法指令(1)不带进位的加法指令ADDA,RnADDA,#dataADDA,directADDA,@Ri影响PSW寄存器中各个标志位的确定方法:Cy:最高位有无进位,AC:低四位向高四位有无进位;P:A的奇偶校验位OV:有符号运算中,最高位进位位与次高位进位位的异或值(2)带进位加法指令ADDCA,RnADDCA,#dataADDCA,directADDCA,@Ri注意:影响PSW寄存器中的Cy、AC、OV、P标志位(3)加1指令INCA;只有它影响PSW,其余四个指令不影响INCRnINCdirectINC@RiINC

2、DPTR2减法指令(1)带借位减法指令SUBBA,RnSUBBA,#dataSUBBA,directSUBBA,@Ri会影响PSW寄存器中的标志位(2)减1指令DECADECRnDECdirectDEC@Ri只有第一条指令影响PSW中的标志位3十进制调整指令DAA影响PSW中的标志位4乘法指令MULAB影响PSW中的标志位若OV=1,则结果超过了2555除法指令DIVAB影响PSW中的标志位若OV=1,则除数为零,除法无意义练习:两个8位无符号数分别放在30H单元和31H单元,编出一完整程序,把两个数乘积的低8位放入32H单元,高8

3、位放入33H单元ORG0100HMOVR0,#30HMOVA,@R0INCR0MOVB,@R0MULABINCR0MOV@R0,AINCR0MOV@R0,BEND逻辑运算指令1、逻辑与指令:ANLA,RnANLA,directANLA,@RiANLA,#dataANLdirect,AANLdirect,#data主要用于从某个存储单元或累加器A中取出某几位数,其余位变为02、逻辑或指令ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data这些指令主要用于对某个存储

4、单元或累加器A中的数据的某些位变为1,其余位不变3、逻辑异或指令XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data这些指令主要用于对某个存储单元或累加器A中的数据的某些位取反,其余位不变4、累加器清零和取反指令CLRACPLA用于对某个存储单元或累加器A中的数进行清零和取反例:1、内部数据存储单元30H有一个数,试编程保留其低4位,高4位变为02、试编程把累加器A的低四位送入P1口低四位,P1口高四位不变3、外部RAM30H中有一个数,试编程把它的低四位取反4

5、、内部RAM30H中有一负数x,试编程求x的补码循环移位指令(4条)RLARRARLCARRCAA.7A.0A.7A.0A.7A.0CYCYA.7A.0后两条指令,影响标志位Cy。用移位指令实现:在不改变符号位的情况下,将R1R0中的16位数右移一位:MOVA,R1MOVC,ACC.7RRCAMOVR1,AMOVA,R0RRCAMOVR0,A3.3.5控制转移指令1、无条件转移指令:长转移类指令:LJMPaddr16绝对转移类指令:AJMPaddr11短转移指令:SJMPrel间接转移指令:JMP@A+DPTR我们在编写汇编语言源程

6、序时,可以直接写成:LJMP标号;即转移到标号处AJMP标号SJMP标号JMP标号2.条件转移指令(8条)条件转移指令是指在满足一定条件时进行相对转移,否则程序继续执行本指令的下一条指令。(1)判A内容是否为0转移指令(2条)JZrel;如果A=0,则转移,否则顺序执行。JNZrel;如果A≠0,就转移。我们在编写汇编语言源程序时,可以直接写成:JZ标号;即转移到标号处。JNZ标号;即转移到标号处(2)比较转移指令(4条)CJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNE@Ri,#

7、data,rel我们在编写汇编语言源程序时,可以直接写成:CJNEA,#data,标号CJNEA,direct,标号CJNERn,#data,标号CJNE@Ri,#data,标号(3)减1条件转移指令(2条)DJNZRn,relDJNZdirect,rel我们在编写汇编语言源程序时,可以直接写成:DJNZRn,标号DJNZdirect,标号例:编程将片外RAM地址为4100H-41FFH的256个单元从小到大依次设置成0H-0FFHMOVR0,#0FFHMOVDPTR,#4100HCLRALOOP:MOVX@DPTR,AINCAIN

8、CDPTRDJNZR0,LOOPMOVX@DPTR,A3.子程序调用和返回(1)调用指令(2条)LCALLaddr16;长调用指令ACALLaddr11;短调用指令上面两条指令都是在主程序中调用子程序,两者的区别:对短调用指令,被调用

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

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

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