控制转移类指令ppt课件(全).ppt
《控制转移类指令ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《控制转移类指令ppt课件(全).ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.3.5 控制转移控制转移类指令类指令1.无条件转移指令(无条件转移指令(4 条)条)a.相对转移指令相对转移指令 (1 条)条)SJMP b.长跳转指令(长跳转指令(1 条)条)LJMP c.短跳转指令短跳转指令 (1 条)条)AJMP d.间接转移指令(间接转移指令(1 条)条)JMP2.子程序调用和返回指令(子程序调用和返回指令(4 条)条)a.调用指令(调用指令(2 条)条)ACALL LCALL b.返回指令(返回指令(2 条)条)RET RETI3.空操作指令(空操作指令(1 条)条)NOP4.条件转移指令条件转移指令(13条条)a.判判C转移指令转移指令(2条条)JC JNCb
2、.判判bit转移指令转移指令(3条条)JB JNB JBCc.判判A转移指令转移指令(2条条)JZ JNZd.减减1非非0则转移指令则转移指令(2条条)DJNZ两种形式两种形式e.比较不相等则转移指令比较不相等则转移指令(4条条)CJNE四种形式四种形式一一.无无条件转移指令(条件转移指令(4 条)条)1.长跳转指令长跳转指令 LJMP (3字节字节)LJMP addr16;PC addr16 执行该指令时执行该指令时,将目标语句的将目标语句的16位地址位地址addr16装入装入PC,程序无条件转向指定的目标语句执行。程序无条件转向指定的目标语句执行。由于长跳转指令提供的是由于长跳转指令提供的
3、是16位地址,对应位地址,对应64KB的程的程序存储器地址空间,所以可跳转到序存储器地址空间,所以可跳转到64KB程序存储器程序存储器地址空间的任何地方。地址空间的任何地方。实际应用中长跳转汇编指令写作实际应用中长跳转汇编指令写作“LJMP 目标语句标目标语句标号号”的形式,如的形式,如“LJMP LOOP”。2.短跳转指令短跳转指令 AJMP (2字节字节)AJMP addr11 ;PC100 addr11这是这是2KB范围内的无条件跳转指令。范围内的无条件跳转指令。执行该指令时执行该指令时,将目标语句的低将目标语句的低11位地址送位地址送入入PC的低的低11位位,而而PC的高的高5位保持不
4、变,位保持不变,这样得到跳转的目的地址。这样得到跳转的目的地址。实际应用中短跳转汇编指令写作实际应用中短跳转汇编指令写作“AJMP 目目标语句标号标语句标号”的形式,如的形式,如“AJMP LOOP”。注意注意:目标地址与目标地址与AJMP后面一条指令必须后面一条指令必须在同一个在同一个2KB区域。区域。表表3-2所示为所示为ROM空间中空间中32个个2KB区间。区间。表表3-2 ROM空间中的空间中的32个个2KB区间区间3.相对转移指令相对转移指令 SJMP (2字节字节)SJMP rel ;PC PC+2+rel执行该指令时执行该指令时,先将先将(PC)+2,再把指令中带符号的再把指令中
5、带符号的偏移量加到偏移量加到PC上上,得到跳转的目标地址送入得到跳转的目标地址送入PC。rel为相对偏移量为相对偏移量,是有符号是有符号8位二进制数(补码形位二进制数(补码形式)式),取值范围为取值范围为127128(00H7FH对对应表示应表示0127,80HFFH对应表示对应表示1281)。)。负数表示反向转移,正数表示正向转移。负数表示反向转移,正数表示正向转移。实际应用中实际应用中SJMP的汇编指令写作的汇编指令写作“SJMP 目标语目标语句标号句标号”的形式,如的形式,如“SJMP LOOP”。由汇编程序在汇编过程中自动计算偏移地址由汇编程序在汇编过程中自动计算偏移地址rel。4.间
6、接转移指令间接转移指令 JMP(1字节字节)JMP A+DPTR ;PC (A)+(DPTR)本指令可代替众多的判别跳转指令,又称本指令可代替众多的判别跳转指令,又称为散转指令,多用于多分支程序结构中。为散转指令,多用于多分支程序结构中。跳转的目标地址不是由标号简单地决定,跳转的目标地址不是由标号简单地决定,而是累加器而是累加器A和数据指针和数据指针DPTR之和,它可之和,它可以是以是64KB存储空间的任何地方。存储空间的任何地方。指令对指令对A、DPTR和标志位均无影响。和标志位均无影响。注意:以上四条指令结果均不影响程序状态注意:以上四条指令结果均不影响程序状态字寄存器字寄存器 PSW。5
7、.LJMP、AJMP、SJMP、JMP四条无条件转移指令的四条无条件转移指令的区别:区别:(1)转移范围不一样。)转移范围不一样。LJMP、JMP转移范围是转移范围是64KB;AJMP转移范围是与当前转移范围是与当前PC值同一个值同一个2KB区间;区间;SJMP转移范围是相对当前转移范围是相对当前PC值的值的-128B+127B范围内。范围内。(2)指令长短不一样。)指令长短不一样。LJMP是是3字节指令;字节指令;AJMP、SJMP是是2字节指令;字节指令;JMP是是1字节指令。字节指令。(3)指令机器码构成不同。)指令机器码构成不同。AJMP、LJMP、JMP后跟的后跟的是绝对地址,而是绝
8、对地址,而SJMP后跟的是相对地址。后跟的是相对地址。(4)地址特点不同。)地址特点不同。LJMP、AJMP、SJMP的转移目标的转移目标地址是固定的,程序执行过程中不变;地址是固定的,程序执行过程中不变;JMP的转移目标的转移目标地址随程序的执行是动态变化的。地址随程序的执行是动态变化的。(5)原则上,所有用)原则上,所有用SJMP或或AJMP的地方都可以用的地方都可以用LJMP来替代。来替代。二二.条件转移指令(条件转移指令(13 条)条)条件转移指令是条件转移指令是指在满足一定条件时进行相对转指在满足一定条件时进行相对转移,程序跳转到目标地址执行;否则程序继续执移,程序跳转到目标地址执行
9、;否则程序继续执行本指令的下一条指令。行本指令的下一条指令。转移的目标指令首地址必须在以下一条指令的起转移的目标指令首地址必须在以下一条指令的起始地址为中心的始地址为中心的256个字节范围之内(个字节范围之内(128+127),否则汇编出错,无法执行。否则汇编出错,无法执行。当条件满足时当条件满足时,PC(PC)+N+rel,其中其中(PC)为为条件转移指令(机器指令)的第一个字节的地址条件转移指令(机器指令)的第一个字节的地址,N为该转移指令的字节数(长度)。为该转移指令的字节数(长度)。条件转移指令根据判断条件可分为:条件转移指令根据判断条件可分为:a.判判C转移指令转移指令(2条条)JC
10、 JNCb.判判bit转移指令转移指令(3条条)JB JNB JBCc.判判A转移指令转移指令(2条条)JZ JNZd.减减1非非0则转移指令则转移指令(2条条)DJNZ两种形式两种形式e.比较不相等则转移指令比较不相等则转移指令(4条条)CJNE四种形式四种形式1.判判C转移指令转移指令(2条条)(1)(CY)=1则转移指令则转移指令 JC rel 指令功能:指令功能:若若(CY)=1,则,则PC(PC)+rel,转移;,转移;若(若(CY)=0,则程序顺序执行。,则程序顺序执行。实际应用中实际应用中JC的汇编指令写作的汇编指令写作“JC 目标语句标号目标语句标号”的形式,如的形式,如“JC
11、 LOOP”。(2)(CY)=0则转移指令则转移指令 JNC rel 指令功能:指令功能:若(若(CY)=0,则,则PC(PC)+rel,转移;,转移;若(若(CY)=1,则程序顺序执行。,则程序顺序执行。2.判判bit转移指令转移指令(3条条)(1)()(bit)=1则转移指令则转移指令 JB bit,rel 指令功能:指令功能:若若(bit)=1,则,则PC(PC)+rel,转移;若,转移;若(bit)=0,则程序顺序执行。,则程序顺序执行。(2)()(bit)=0则转移指令则转移指令 JNB bit,rel 指令功能:指令功能:若若(bit)=0,则,则PC(PC)+rel,转移;若,转
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制 转移 指令 ppt 课件
限制150内