yydg.net
当前位置:首页 >> sjmp指令是什么意思 >>

sjmp指令是什么意思

单片机指令:SJMP $ 意思即跳转到本指令的起始位置开始执行,这样就变成了循环执行,即原地跳转,一般用来等待中断. 但是本指令也不宜滥用.这是一条死循环指令,如果系统的中断是开放的,那么SJMP $指令实际上是在等待中断,当有中断申请后,CPU 转至执行中断服务程序.中断返回时,仍然返回到这条死循环指令,继续等待中断,而不是返回到该指令的下一条指令.这是因为执行SJMP $后,PC 仍指向这条指令,中断的断点就是[3] 这条指令的首字节地址.

SJMP是单片机的短跳转指令,后面一般跟标号,例如:SJMP HERE,SJMP $等.

跳转指令,你想往哪里跳就在AJMP后面接个标号,指令执行到AJMP的时候会跳到你所给的地方,但是它跳转的范围是有限的 loop: mov p1,#0ffh . . .ajmp loop 这时候程序就返回到上面的地方再往下执行碰到AJMP再回去,就这样循环

sjmp是单片机的短跳转指令,后面一般跟标号,例如:sjmp here,sjmp $等.sjmp $ 就是跳到此处,也就是原地踏步,让程序停在此处.

单片机指令:sjmp $ 意思即跳转到本指令的起始位置开始执行,这样就变成了循环执行,即原地跳转,一般用来等待中断. 但是本指令也不宜滥用.这是一条死循环指令,如果系统的中断是开放的,那么sjmp $指令实际上是在等待中断,当有中断申请后,cpu 转至执行中断服务程序.中断返回时,仍然返回到这条死循环指令,继续等待中断,而不是返回到该指令的下一条指令.这是因为执行sjmp $后,pc 仍指向这条指令,中断的断点就是[3] 这条指令的首字节地址.

sjmp指令只有2个字节,功能是跳转到当前程序计数器地址+rel的地址处,而0feh十进制就是-2.你看,1.本指令执行时,当然本指令已经读取了,所以程序计数器的值是sjmp指令的地址+sjmp指令的指令长度,也就是sjmp指令的地址+2;2.sjmp指令的功能使程序计数器=程序计数器+rel,也就是程序计数器+(-2)=程序计数器-2,正好使程序计数器又回到sjmp指令的地址,也就是下一条指令读取的还是sjmp指令,如此循环没有出口,当然就是死循环.

跳转的范围不一样,可以说是到达的远近距离不一样.存储空间占用不一样. AJMP 的范围是11位地址,也就是2K的空间内,占用存储空间2个字节,执行周期24个时钟周期. LJMP 的范围是16位地址,也就是64K的空间内,占用存储空间3个

sjmp $ 是原地跳转的指令.作用:1,可以防止程序乱跳.2,等待中断发生.51单片机指令.功能:短转移(Short Jump) 格式:SJMP rel ;作用: PC PC+2 , PC PC+rel 短转移指令(-126+129范围内的转移指令) 短转移指令的功能是先

以SJMP为原点,可以往前跳,正向跳转,往后跳,反向跳转.假设SJMP指令所在地址为0110H,因为要取出SJMP指令,是两个字节,那当前地址要加2,为0112H,反向跳转的目的地址是0110H,则跳转偏移量rel=0110H-0112H=-12H.rel为负数,但要用补码表示,为EFH.

不让发那么多 所有分两次 这里接上面的4.循环移位指令(4条) 循环移位指令的功能是将累加器A中内容循环位移或者和进位位一起移位.例 A=01H, Cy=1若执行一次 RRC A后,结果为:A=10000000B Cy=1若执行一次 RLC A后,结果为:A=

网站首页 | 网站地图
All rights reserved Powered by www.yydg.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com