EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
控制转移指令0 H% m: g0 |, L
+ o- o1 c" a, ]7 h' w- ?/ ]7 |" G' F6 S0 c
控制转移类指令 计算机运行过程中,有时因为操作的需要,程序不能按顺序逐条执行指令,需要改变程序运行方向,即将程序跳转到某个指定的地址再顺序执行下去。 控制转移类指令的功能就是根据要求修改程序计数器PC的内容,以改变程序运行方向,实现转移。 控制转移类指令可分为:无条件转移、条件转移、绝对转移、相对转移和调用、返回指令。下面我们将分类介绍。 1.无条件转移指令(4条) LJMP add16 ;add16→PC,无条件跳转到add16地址,可在64KB范围内 转移,称为长转移指令 AJMP add11 ;add11→PC,无条件转向add11地址,在2KB范围内转移 SJMP rel ;PC+2+rel→PC,相对转移,rel是偏移量,8 位有符号 数,范围-128~127,即可向后跳转128,向前可跳转127 JMP @A+DPTR ;A+DPTR→PC ,属散转指令,无条件转向A与DPTR内容相 加后形成的新地址 例1 执行指令 LJMP 9100H 不管这条指令存放在哪里,执行时将使程序转移到9100H,和AJMP,SJMP指令是有差别的。 例2 程序 2000H MOV R0 , #10H ;10H→PC 2002H SJMP 03H ;PC+2+rel=2002H+2+03H=2007H→PC ┇ ┇ 2006H ┇ 2007H ┇ 从说明中可见,执行SJMP 03H 指令后,马上跳转到2007H地址执行程序。
) ^3 J+ L, p0 G( m* C+ I) N. k/ y: d |