- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
控制转移类指令 控制转移类指令共计 17 条, 可分为无条件转移指令、 条件转移指令、 子程序调用及返回指令。 有了丰富的控制转移类指令, 就能很方便地实现程序的向前、 向后跳转, 并根据条件分支运行、 循环运行、 调用子程序等。 1. 无条件转移指令 无条件转移指令有如下 4 条指令, 它们提供了不同的转移范围和寻址方式。 LJMP addr16 ; PC ← addr16 AJMP addr11 ; PC 10~0← addr11 SJMP rel ; PC ← PC +2+rel JMP @A+DPTR ; PC ← A +DPTR 1 LJMP 称为长转移指令, 三字节指令, 提供 16 位目标地址addr16。 例如: 在程序存储器0000H单元存放一条指令: LJMP 3000H; PC ← 3000H 则上电复位后程序将跳到3000H 单元去执行用户程序。 2 AJMP称为绝对转移指令, 双字节指令。 该指令执行后, 程序转移的目的地址是由AJMP指令所在位置的地址PC值加上该指令字节数 2, 构成当前PC值。 取当前PC值的高 5 位与指令中提供的 11 位直接地址形成转移的目的地址, 即: 由于 11 位地址的范围是 00000000000~1XXXXXXXXXX, 即 2 KB范围, 而目标地址的高 5 位是由PC当前值固定的, 所以程序可转移的位置只能是和PC当前值在同一 2 KB的范围之内。 例如: 若AJMP指令地址 PC 2300H。 执行指令: AJMP 0FFH; PC ← PC +2 2302H PC 15~11 00100 PC 10~0← 00011111111 结果为: 转移目的地址 PC 20FFH , 程序向前转向 20FFH单元开始执行。 3 SJMP称为短转移指令, 双字节指令, 指令的操作数是相对地址rel。 由于rel是带符号的偏移量, 所以程序可以无条件向前或向后转移, 转移的范围是在SJMP指令所在地址PC值(源地址)加该指令字节数2的基础上, 以-128~+127 为偏移量(256 个单元)的范围内实现相对短转移, 即: 目的地址 源地址+2+rel 4 JMP称为间接长转移指令。 它是以数据指针DPTR的内容为基址, 以累加器A的内容为相对偏移量, 在 64 KB范围内可无条件转移的单字节指令。 该指令的特点是转移地址可以在程序运行中加以改变。 例如: 根据累加器A的数值, 转不同处理程序的入口。 MOV DPTR, #TABLE ; 表首址送DPTR JMP @A+DPTR ; 依据A值转移 TABLE:AJMP TAB1 ; 当 A 0时转TAB1执行 AJMP TAB2 ; 当 A 2时转TAB2执行 AJMP TAB3 ; 当 A 4时转TAB3执行 2. 条件转移指令(判跳指令) 条件转移指令是当某种条件满足时, 程序转移执行; 条件不满足时, 程序仍按原来顺序继续执行。 条件转移的条件可以是上一条指令或者更前一条指令的执行结果(常体现在标志位上), 也可以是条件转移指令本身包含的某种运算结果。 1 累加器判零转移指令 这类指令有 2 条: JZ rel 若 A 0, 则 PC ← PC +2+rel 若 A ≠0, 则 PC ← PC +2 JNZ rel 若 A ≠0, 则 PC ← PC +2+rel 若 A 0, 则 PC ← PC +2 2 比较转移指令 比较转移指令共有 4 条, 其一般格式为: CJNE目的操作数, 源操作数, rel 这组指令是先对两个规定的操作数进行比较, 根据比较的结果来决定是否转移到目的地址。 4 条比较转移指令如下: CJNE A, #data , rel CJNE A, direct, rel CJNE @Ri, #data, rel CJN
文档评论(0)