- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.8 控制转移指令
通常情况下,程序的执行是顺序进行的,但也可以根据需要改变程
序的执行顺序,这种情况称作程序转移。控制程序的转移要利用
转移指令。转移类指令的共同特点是可以改变程序执行的顺序,
使CPU转移到另一处执行,或者是继续顺序地执行。无论是哪一
类指令,执行后都以改变程序计数器PC中的值为目标。
转移类指令分为四类:无条件转移、条件转移、调用指令及返回指
令,共计有21条指令,另外还有一条NOP指令。除NOP指令执行
时间为一个机器周期外,其它转移指令的执行时间都是两个机器
周期。
助记符18种:AJMP 、LJMP、SJMP、JMP ;JZ、JNZ、CJNE、
DJNZ;JC、JNC、JB、JNB、JBC ;ACALL 、LCALL;RET、
RETI;NOP。
有了丰富的控制转移类指令, 就能很方便地实现程序的向前、 向后
跳转, 并根据条件分支运行、循环运行、调用子程序等。
3.8 控制转移指令
3.8.1 无条件转移指令
不规定条件的程序转移称之为无条件转移。51系列共有4条无条件转移指
令,它们提供了不同的转移范围和寻址方式。执行指令后程序的执行顺
序是必须转移的。
一、短跳转指令(Absolute Jump )
AJMP addr11 ;PC← (PC)+2,(PC)10~0←addr11
该指令执行时,先将PC的内容加2 (这是PC指向的是AJMP 的下一条指
令),然后把指令中11位地址码传送到PC10~0,而PC15~11保持原内
容不变。需要注意的是,由于AJMP是双字节指令,当程序转移时PC的
内容加2,因此转移的目标地址应与AJMP下相邻指令第一字节地址在同
一双字节范围。本指令不影响标志位。
在目标地址的11位中,前3位为页地址,后8位为页内地址(每页含256个
单元)。当前PC的高5位(即下条指令的存储地址的高5位)可以确定
32个2KB段之一。所以,AJMP指令的转移范围为包含AJMP下条指令
在内的2KB区间。
3.8 控制转移指令
例如,程序存储器的2070H地址单元有绝对转移指令:
2070H AJMP 16AH (00101101010B)
程序计数器PC当前=PC+2=2070H+02H=2072H (0010 0000
0111 0010),取PC当前的高5位00100和指令给出的11位
地址00101101010最后形成的目的地址为:0010 0001
0110 1010B=216AH。
二、相对转移指令(Short Jump )
SJMP rel ;PC ← (PC)+ 2,PC ← (PC)+ rel
第一字节为操作码,第二字节为相对偏移量rel,rel 是一个带
符号的偏移字节数(2的补码),取值范围为+127~-128
(00H~7FH对应表示0~+127,80H~FFH对应表示
-128~-1)。负数表示反向转移,正数表示正向转移。转移
范围为当前PC值的-128~+127范围内,共256个单元。
3.8 控制转移指令
rel 可以是一个转移目标地址的标号,由汇编程序在汇编过程
中自动计算偏移地址,并填入指令代码中。在手工汇编时,
可用转移目标地址减转移指令所在的源地址,再减转移指令
字节数2得到偏移字节数rel。
若偏移量rel取值为FEH (-2的补码),则目标地址等于源地址,
相当于动态停机,程序终止在这条指令上,停机指令在调试
程序时很有用。51系列单片机没有专用的停机指令,若要求
动态停机可用SJMP指令来实现:
HERE:SJMP HERE;动态停机
或写成HERE:SJMP $ ;“$”表示本指令首字节所在单
元的地址,使用它可省略标号。
例 若标号“NEWADD”表示转移目标地址0123H,PC的当前
值为0100H。执行指令SJMP NEWADD 后,程序将转向
0123H 处执行(此时re l= 0123H-(010
您可能关注的文档
- 陕西国际商贸学院工学院数据库原理及应用第6章 数据库设计.pdf
- 华中师范大学生 物教学论第一章 生物学 教学论概述02.2 生物 学教学论的课程目标.pdf
- 华中师范大学生 物教学论第一章 生物学 教学论概述01.1 生物 学教学论的形成与发展.pdf
- 陕西国际商贸学院工学院数据库原理及应用第7章 SQL Server 2000&2005数据库管理系统.pdf
- 陕西国际商贸学院工学院数据库原理及应用第7章 SQL Server 2005数据库管理系统――7.2 Transact-SQL编程.pdf
- 陕西国际商贸学院计算机基础 概述.pdf
- 陕西国际商贸学院计算机基础 数据链路层.pdf
- 陕西国际商贸学院计算机基础 网络层.pdf
- 华中师范大学生 物教学论第四章 中学生物学 学生学习活动与学习策略03.3.pdf
- 陕西国际商贸学院计算机基础 物理层.pdf
最近下载
- 公共秩序维护及安全防范措施方案.docx VIP
- 《智能网联整车综合测试》课件——VRU碰撞自动紧急制动场景测试评价.pptx VIP
- 2026高照资料分析-理论实战3+2学习.docx VIP
- TCAMA 110-2024 柔性墙体装配式日光温室建设标准.pdf VIP
- 2025-2030中国压力容器行业市场深度调研及发展战略与前景展望研究报告.docx
- 《智能网联整车综合测试》课件——智能网联整车仿真测试典型场景——周边车辆行驶状态与自动紧急避险识别及响应.pptx VIP
- 尖锐湿疣的护理ppt.pptx
- 股指走势图.doc VIP
- 《智能网联整车综合测试》课件——探测并避让对向来车场景测试评价.pptx VIP
- 《智能网联整车综合测试》课件——车道保持控制场景测试评价.pptx VIP
文档评论(0)