第十节 控制转移类指令.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十节 控制转移类指令

第九节 控制转移类指令 ;我们知道,程序的顺序执行,是靠程序计数器PC每次自动加1实现的。在很多情况下,?程序需要循环、出现分支或调用子程序等,这都要人为改变程序的执行顺序,也就是改变?PC的值。利用控制转移指令就可以达到这样的目的。 ;无条件转移指令 长转移指令 ;例:执行以下程序: ORG 0000H ;伪指令ORG用于规定程序的起始地址 MOV A,#05H ;该指令机器码为:75H 05H ADD A,#05H ;该指令机器码为:24H 05H LJMP LOOP ;长转移指令为3字节指令,操作码为02H,操作数为32H和50H …… ORG 2200H LOOP:ADD A,#05H ;该指令机器码为:24H 05H ;无条件转移指令 绝对转移指令;绝对转移指令 ;短转移指令 ;短转移指令;例如,若在1FFEH处有如下程序,判断短转移指令SJMP是否有效。 1FFEH: SJMP LOOP 2000H: …… …… ORG 2080H LOOP: MOV A,#05H 计算机处理指令SJMP时,PC首先加2变为2000H,然后再加偏移量rel,最后得到转移目的地址。由于rel的值必须在-128~+127之间,目的地址必须设置在1F80H~207FH之间。但是此程序中短转移指令SJMP LOOP的转移目的地址却设置在2080H,超出了允许的范围。 上段程序中指令若用AJMP LOOP替代SJMP LOOP,则程序不会出错,因为判断指令AJMP是否合法有效的方法是转移目的地址与AJMP指令的首地址加2后的地址的高五位是否相同。显然加2后的地址2000H和目的地址2080H的高五位是相同。 上段程序若采用长转移指令LJMP LOOP,肯定不会出错。因为该指令的转移范围是0000H~FFFFH的64K字节地址范围,目的地址只能在这个范围内。;短转移指令举例;短转移指令举例;短转移指令举例;变址寻址转移指令 ;变址寻址转移指令举例;四种无条件转移指令 的区别;条件转移指令 ;累加器判零转移指令 ;转移指令中出现的标号与具体偏移量rel的关系 ;偏移量rel的手工计算和自动计算;判位变量转移指令 ;设输入口P1上的数据,累加器A的内容为56H),标号LABEL1和LABEL2所代表的目的地址为2023H和2056H,执行首地址为2000H???下列程序,写出指令的机器码: JB P1.2, LABEL1 ; 机器码:20H 92H 20H JNB ACC.3, LABEL2 ; 机器码:30H E3H 50H;判位变量并清0转移指令 ;判位累加器C转移指令 ;比较转移指令 ;比较转移指令的举例;循环转移指令;循环转移指令举例;思考题;思考题;思考题

文档评论(0)

djdjix + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档