SJMP $在单片机汇编语言延时程序的作用?

这个问题不懂,有懂得给我解释一下,谢谢了!

SJMP $ 是原地转移的意思。
说它是延时,这个“时间”可是无限的;说它是“死机”也差不多。
但是,它在原地转移的时候,可能插入中断,所以,它还不是真正的死机。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-25
sjmp$
ajmp$ 都是无条件返回本条指令,不是延时,延时的话就nop,或者程序延时
ljmp$

程序延时

a1:
mov r3,#200
a2:
mov r3,#200
djnz r2,$
djnz r3,a2

end
第2个回答  2009-10-24
不是,他是“原地踏步”的意思,也就是等待你程序的某一部分来使他跳出这个等待,比如中断!
延时程序是延长一个具体的时间,而SJMP的等待虽然延时的效果,但他延时效果是不稳定的,一中断他就跳出来了,没中断的话他就无限制的“原地踏步”
第3个回答  2009-10-25
等待,执行了这个程序,没有中断就出不来了
第4个回答  2013-02-10
原地踏步,就是程序转移到自己身上。遇到中断就执行中断服务,然后还是回到这里。

SJMP $在单片机汇编语言延时程序的作用?
SJMP $ 是原地转移的意思。说它是延时,这个“时间”可是无限的;说它是“死机”也差不多。但是,它在原地转移的时候,可能插入中断,所以,它还不是真正的死机。

单片机,汇编,在下面例子中SJMP $的作用,
SJMP $,就是原地转移的功能,不往下执行了。在纸上写作业,SJMP $ 的作用,几乎看不出来。上机调试,就明显了。如果没有这句,就停不住了。即使有 END,也不会停止。会连续的向下执行,说不定会执行出来什么花花样来。

单片机汇编语言中SJMP $是什么意思
原地转移,一般来说,就是死机了。如果中断开放,满足条件时,也可以转入到中断程序里面去。

SJMP $单片机这条指令到底是干嘛用的,我看每个程序后面基本都有,没有...
sjmp 是 单片机中的 无条件跳转命令,后面跟随的是 跳转的地址;而 $ 该符号,在汇编语言中,表示 本行地址 的意思,于是 SJMP $,就表示跳转到本行。表现的结果就是:死循环。一般在程序结尾使用,功能是,保持单片机程序不结束(以免程序重新运行)

汇编语言中ret和SJMP $有什么区别,为什么有些程序结束的时候是用SJMP...
当子程序执行完后,靠该指令返回主程序。SJMP $ 是相对转移指令 是用在主程序中的,可以作为暂停。等价于 LL: SJMP LL 就是又跳转到这条指令的本身,反复执行给指令,不再执行别的指令了。相当于暂停 (或在这等待计算机的中断时间发生)呵呵 满意 就选满意回答吧 ...

SJMP $的作用是什么?
SJMP $的作用相当于C中的while(1)程序在 原地执行,SJMP占两个字节,SJMP rel;(PC)<-(PC)+2 然后(PC)<-(PC)+rel这里rel是相对地址 编译器编译时会自动的算出他相对此时相对(PC)的地址,就如你说的SJMP $这里美元符号指的是当前的地址,就是说要跳转到当前地址,假设你SJMP的其实地址...

...程序最末尾为什么要加上 sjmp $ end 为什么不直接end呢?采取这_百度...
单片机程序 end 这条伪指令 表示程序到这里结束,也是编译软件判断程序结束的标志。sjmp $ 是一条转移指令 $ 表示为 本条指令的地址,就是循环执行 本条指令,并不是一定要的,主要看程序 需要 处理 些 什么任务而定,有这种 sjmp $ 指令 一般是很简单的 程序才会用。

单片机编程中,END\\AJMP $\\SJMP $,有什么区别?
就是一个死循环,使程序停在这里。两者都是2字节2周期指令,在这里没有什么区别。AJMP的最大转跳范围是当前2K页面,而SJMP则是本指令前127字节后128字节。是一个(也是唯一一个)不需要定义的地址标号,代表当前行命令的地址。END代表汇编程序到此结束,编译程序对END以后的内容不作编译。

51单片机汇编语言中 SJMP $ 是什么意思
就是一个无限循环 SJMP是个短跳转 就是当前指令的起始地址

单片机在执行程序中的SJMP $ 指令时,解释为踏步或终止,这时CPU在工作...
因51单片机中没有暂停指令,所有,有些程序为了让单片机执行完本段程序后实现相当于暂停的效果,不允许再继续执行,就用一条SJMP $ 指令,其实就是在本条指令处无限循环下去,即所谓的死循环,当然就不会向下执行其它指令了,这时CPU仍然在继续工作了,一切正常,只不过不再执行其它指令罢了。

相似回答
大家正在搜