单片机3.5控制转移指令

单片机3.5控制转移指令

ID:21149722

大小:192.50 KB

页数:15页

时间:2018-10-20

单片机3.5控制转移指令_第1页
单片机3.5控制转移指令_第2页
单片机3.5控制转移指令_第3页
单片机3.5控制转移指令_第4页
单片机3.5控制转移指令_第5页
资源描述:

《单片机3.5控制转移指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五节控制转移指令这类指令可使程序转向非顺序单元执行,使程序发生分支或循环。一、无条件转移指令:1.调用与返回指令:P71调用子程序与从子程序返回操作解释:8000MOVA,#05H8250BBD:-----8002-----8252-----8004-----------800AACALLBBDPC800C将800C压入堆栈保存RETPC修改为BBD的地址返回操作从堆栈中弹出断点1(1).绝对调用指令ACALLaddr11调用子程序指令。该指令可改变程序计数器PC的低11位地址,所调子程序首地址必须在2K页内。(2

2、).长调用指令LCALLaddr16调用子程序指令。所调子程序首地址可在64K地址的任何位置。(3).从子程序返回指令RET22.无条件跳转指令:P64(1)绝对跳转指令AJMPaddr11可使程序在2k页内跳转,即可改变低11位地址。(2)长跳转指令LJMPaddr16可使程序跳转到64K程序存储器的任何位置。(3)相对短跳转指令SJMPrel其中rel为偏移量,指令表中用(e)表示。rel的数字指出PC跳转应从现地址向上或向下跳转多少字节。rel为8位有符号二进制数,它的范围是-128~+127,用补码表示。re

3、l为负值时表示从大地址向小地址跳转,为正值时表示从小地址向大地址跳转。例38000MAIN:MOVA,#01H8002ADDA,#02H…8006SJMPMAIN(DIR)PC8008MOVA,@R0…800FDIR:MOVA,R2偏移量rel的计算公式为(e)=目的地址–PC当前值,注意用补码表示。PC当前值为跳转指令下面一条指令的地址,即8008H。上例中跳转到MAIN时:(e)=8000H–8008H=F8H(-8)跳转到DIR时:(e)=800FH–8008H=07H4使用以上调用与转移指令注意:★以上指令均

4、为无条件,执行该类指令时程序计数器PC一定转向非顺序单元执行。★调用与返回指令常成对使用,返回指令RET应出现在每一个子程序的末尾。★调用与返回指令都要有栈操作,使用该类指令前要建立堆栈,以便保护断点。★转移指令与调用子程序指令的异同:相同之处是它们都是改变PC值,使程序转入非顺序单元执行。不同之处是:调用与返回指令在子程序执行结束后一定返回原断点地址,因此一定有栈操作。转移指令转走后不一定回到原断点,因此不必堆栈保存断点地址。5★三种转移指令:AJMPaddr11短跳转地址范围2K字节二字节指令LJMPaddr16

5、长跳转地址范围64K字节三字节指令SJMPrel相对跳转地址范围256字节二字节指令它们就跳转的操作来说没有任何区别,适用于不同的跳转地址范围。6二、有条件转移指令:该类指令是当符合某种条件时,程序转移到另一地址执行,不符合这种条件时,程序按原顺序继续执行。1.判零相对转移指令:以累加器A的内容为0或非0为条件判断转移。P68JZrel;A的内容为0则相对转移,否则顺序执行。JNZrel;A的内容非0则相对转移,否则顺序执行。rel偏移量的定义同前。例MOVA,#56HSUBBA,R0JZ8016H;当减法结果为0时

6、跳到8016H地址执行…否则继续往下执行。72.比较相对转移指令:P68CJNE(目的字节),(源字节),rel操作:将目的字节内容与源字节内容相比较,若不等则相对转移,若相等则顺序执行。若(目的字节)<(源字节)则C=1,否则C=0该指令执行后操作数内容不变。例CJNEA,#04H,MAIN;(A)≠04H则跳转到MAIN标号(A)=04H顺序执行如果(A)<04H则C=1CJNE@R0,#05H,DIR;((R0))≠05H则跳DIR标号CJNEA,30H,STOP;(A)≠(30H)则跳STOP标号83.控制转

7、移指令:P70DJNZ第一操作数,rel操作:第一操作数内容减1,结果非0则相对转移,结果为0则顺序执行。第一操作数可以是DATA或Rn。该指令不影响任何标志位。例DJNZR0,LOOP;(R0)–1结果非0转LOOP标号DJNZ30H,SQ;(30H)–1结果非0转SQ标号94.以位地址的内容为判断条件的转移指令:(1)JCrel;(C)=1跳转;(C)=0顺序向下执行(2)JNCrel;(C)=0跳转;(C)=1顺序向下执行(3)JBbit,rel;(bit)=1跳转;(bit)=0顺序问下执行(4)JNBbit

8、,rel;(bit)=0跳转;(bit)=1顺序问下执行(5)JBCbit,rel;(bit)=1跳转,且将该位内容清0;(bit)=0顺序向下执行三、其它指令1.RETI从中断返回指令。后述。2.NOP空操作指令。执行该指令CPU不作任何操作,只是延时一个机器周期的时间。10四、控制转移指令综合举例:例1判断P1口输入的数据若为负则转DIR,

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

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

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