- 1、本文档共115页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(1)短转移指令 格式: AJMP addr11 ; PC(PC+2,PC10~0(addr10~0,PC15~11不变) 双字节指令,是11位地址的无条件转移指令,它的机器码为:a10 a9 a8 0 0 0 0 1 a7……a0,a10a0为转移目标地址中的低11位,00001是这条指令特有的操作码,其转移范围为PC+2后的同一2KB内,也就是高5位地址相同。 由于AJMP是双字节指令,当程序真正转移时PC的内容加2,即PC+2→PC,因此转移的目标地址应与AJMP下相邻指令第一字节地址在同一双字节范围,本指令不影响标志位。 (2)长转移指令 格式:LJMP addr16 ; PC(addr15~0,转移范围为64KB) 此为三字节指令,机器码的第一字节为02H,第二字节为地址高8位,第三字节为地址的低8位。即addr 15~8 addr 7~0。 该指令可使程序执行在64KB地址范围内无条件转移,但比AJMP指令多占1个字节,不可多用该指令。 (3)相对转移指令 格式:SJMP rel ;PC←PC+2,PC←PC+rel 此为双字节指令,机器码的第一字节为80H;第二字节为相对地址值,也称相对偏移量,是一个8位带符号的数。 该指令的转移范围为+127B~ -128B。 转移的地址 = 源地址+2+rel ↓ ↓ SJMP所在地址 +127~ -128 (执行程序前的PC) 在手工汇编时,常需计算地址的相对偏移量,设相对转移指令第一个字节为源地址,要转去执行指令的第一字节地址为目的地址,则其相对偏移量为: 向下转移:rel=(源、目的地址差的绝对值)-2 向上转移:rel=FE-(源、目的地址差的绝对值) PC地址由大到小转移,用向上转移公式;反之,用向下转移公式。 LJMP、AJMP、SJMP三条无条件转移指令的区别: 这三个指令的字节不同。LJMP是3字节指令,AJMP、SJMP是2字节指令。 转移范围不同。LJMP转移范围是64KB,AJMP与PC值在同一2KB范围内,SJMP转移范围是PC(-128B~+127B)。AJMP和SJMP指令应注意转移目标地址是否在转移的范围内,不能超出其转移的范围。 SJMP只给出了相对转移地址,不具体指出地址值,这样当程序修改时,只要相对地址不发生变化,本指令不需改动,而LJMP、AJMP当程序修改时就有可能需要修改该地址,SJMP常用于子程序编制。 (4)间接转移指令 格式:JMP @A+DPTR ;PC←A+DPTR ,单字节指令,.机器码为73H。 该指令以DPTR寄存器内容为基址,以累加器内容为相对偏移量,在64KB地址范围内无条件转移。指令的执行结果不会改变DPTR及A中原来的内容。本指令的特点是转移地址可以在程序运行中加以改变,这也是和前三条指令的主要区别。该指令通常应用在散转程序中。 可以简便地实现很多分支出口的转移,被称散转。 条件满足? N Y 一般分支 出口0 出口1 出口n-1 n路多分支 分支程序的示意图 MOV DPTR,#TAB MOV A,R2 RL A JMP @A+DPTR TAB: AJMP addr00 AJMP addr01 AJMP addr02 ┇ AJMP addr7F 例 设计可多达128路分支出口的转移程序。 设128个出口分别转向128段小程序,它们的初址依次为addr00、addr01、addr02、addr03、……、addr7F。要转移到某分支的信息存放在工作寄存器R2中,则散转程序为: 2.条件转移指令 本指令有7条。它们在满足条件的情况下才进行程序转移,条件若不满足,仍按原程序继续执行,故称为条件转移指令或者称判跳指令。 1)判A转移指令 (1)A=0转移指令 格式:JZ rel ;PC←PC+2,若A=0,则PC←PC+rel转移,若A≠0,按顺序执行。 此为双字节指令,机器码的第一字节为60H,第二字节为相对地址。 (2)判A不等于0转移指令 格式:JNZ rel ;PC←PC+2,若A≠0,则PC←PC+rel转移。若A=0 ,按顺序执行。 此为双字节指令,机器码的第一字节为70H,第二字节为相对地址。判A转移指令不改变原累加器内容,不影响标志位。 方法1: JZ ADB ;若A=0,
文档评论(0)