单片机原理:3-4_4指令分类_控制转移类

上传人:工**** 文档编号:571156281 上传时间:2024-08-09 格式:PPT 页数:10 大小:317KB
返回 下载 相关 举报
单片机原理:3-4_4指令分类_控制转移类_第1页
第1页 / 共10页
单片机原理:3-4_4指令分类_控制转移类_第2页
第2页 / 共10页
单片机原理:3-4_4指令分类_控制转移类_第3页
第3页 / 共10页
单片机原理:3-4_4指令分类_控制转移类_第4页
第4页 / 共10页
单片机原理:3-4_4指令分类_控制转移类_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单片机原理:3-4_4指令分类_控制转移类》由会员分享,可在线阅读,更多相关《单片机原理:3-4_4指令分类_控制转移类(10页珍藏版)》请在金锄头文库上搜索。

1、第3章 AT89S51单片机的 指令系统13.4.4 3.4.4 控制转移类指令控制转移类指令1 1长转移指令长转移指令( (无条件转移)LJMPLJMPaddr16addr16指令执行时,把转移的目的地址,即指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向addr16指定的目的地址:64KB程序存储器地址空间的任何位置。2 2相对转移指令相对转移指令( (无条件转移)SJMPSJMPrelrelrel为相对偏移量,是一单字节的带符号8位二进制补码数,因此程序转移是双向的。relrel如为正如为正,向地址增大的方向转移;relrel如为负如为负,向地址减小的方向转移。2执行时,

2、在PC加2(本指令为2B)之后,把指令的有符号的偏移量rel加到PC上,并计算出目的地址。编程时,只需写上目的地址标号, 相对偏移量由汇编程序自动计算。例如:LOOPLOOP:MOV MOV A A,R6 R6 SJMP SJMP LOOPLOOP汇编时,跳到LOOP处的偏移量由汇编程序自动计算和填入。33 3绝对转移指令绝对转移指令: :AJMPAJMPaddr11addr11指令双字节,格式如下:指令双字节,格式如下:指令指令提供提供1111位地址位地址A10A10A0A0(即(即addr11addr11),其中),其中A10A10A8A8则位于则位于第第1 1字节的高字节的高3 3位位,

3、A7A7A0A0在在第第2 2字节字节。操作码操作码只占只占第第1 1字节的低字节的低5 5位位。指令构造转移目的地址:指令构造转移目的地址:执行本指令,执行本指令,PCPC加加2 2,然后把指令中的,然后把指令中的1111位位无符号整数地址无符号整数地址addr11addr11(A10A10A0A0)送入送入PC.10PC.10PC.0PC.0,PC.15PC.15PC.11PC.11保持不变,形成新的保持不变,形成新的1616位转移目的地址。位转移目的地址。需注意,目标地址必须与需注意,目标地址必须与AJMPAJMP指令的下一条指令首地址的高指令的下一条指令首地址的高5 5位地位地址码址码

4、A15A15A11A11相同,否则将混乱。所以,是相同,否则将混乱。所以,是2KB2KB范围内的无条件跳转范围内的无条件跳转指令指令 。4 4间接跳转指令:间接跳转指令:JMP A+DPTRJMP A+DPTR单字节转移指令,单字节转移指令,目的地址目的地址由由A A中中8 8位无符号数与位无符号数与DPTRDPTR的的1616位位无符号数内容之和来确定。无符号数内容之和来确定。以以DPTRDPTR内容为内容为基址基址,A A的内容作为的内容作为变址变址。给。给A A赋予不同值,即赋予不同值,即可实现多分支转移。可实现多分支转移。5 5条件转移指令条件转移指令执行指令时,如执行指令时,如条件满

5、足条件满足,则转移;不满足,则顺序执行下,则转移;不满足,则顺序执行下一指令。一指令。转移目的地址转移目的地址在以下一条指令首地址为中心的在以下一条指令首地址为中心的256B256B范围范围内(内(-128-128+127+127)。)。JZJZrelrel;如果累加器内容为;如果累加器内容为0 0,则执行转移,则执行转移JNZJNZrelrel;如果累加器内容非;如果累加器内容非0 0,则执行转移,则执行转移6比较不相等转移指令比较不相等转移指令CJNEA,direct,relCJNEA,#data,relCJNE Rn,#data,relCJNE Ri,#data,rel比较前两个操作数大

6、小,如果值不相等则转移不相等则转移,并转向目的地址。如果第一操作数(无符号整数)小于第二操作数如果第一操作数(无符号整数)小于第二操作数(无符号整数),则进位标志位Cy置1,否则Cy清0。该指令的执行不影响任何一个操作数的内容。7减减1不为不为0转移指令转移指令把减1与条件转移两种功能合在一起。两条:DJNZRn,rel;n =07DJNZdirect,rel用于控制程序循环。预先装入循环次数,以减1后是否为“0”作为转移条件,即实现按次数控制循环。8调用子程序指令调用子程序指令(1)长调用指令)长调用指令LCALL addr16可调用64KB范围内程序存储器中的任何一个子程序。执行时,先把先

7、把PC加加3获得下一条指令的地址(断点地址),获得下一条指令的地址(断点地址),并压入堆栈(先低位字节,后高位字节),堆栈指针加2。接着把指令的第二和第三字节(把指令的第二和第三字节(A15A8,A7A0)分别)分别装入装入PC的高位和低位字节中的高位和低位字节中,然后从PC指定的地址开始执行程序。执行后不影响任何标志位。不影响任何标志位。(2)绝对调用指令)绝对调用指令ACALL addr11与AJMP指令类似,为兼容MCS48的CALL指令而设,不影响标志位。格式如下:2KB范围内的调用子程序的指令。子程序地址必须与ACALL指令下一条指令的16位首地址中的高5位地址相同,否则将混乱。9 9子程序的返回指令子程序的返回指令 RETRET执行本指令时(SP)PCH,然后(SP)-1SP(SP)PCL,然后(SP)-1SP功能:从堆栈中退出PC的高8位和低8位字节,把栈指针减2,从PC值处开始继续执行程序。不影响任何标志位。1010中断返回指令中断返回指令RETIRETI与RET指令相似,不同处:该指令清除了中断响应时被置1的内部中断优先级寄存器的中断优先级状态,其他相同。1111空操作指令空操作指令NOPNOP不进行任何操作,耗一个机器周期时间,执行(PC)+1PC操作

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号