sjmp $意味着跳转到该指令的开头以开始执行,因此它变为循环执行,就地跳转,通常用于等待中断。
但是本指令也不宜滥用。这是一条死循环指令,如果系统的中断是开放的,那么sjmp $指令实际上是在等待中断,当有中断申请后,cpu 转至执行中断服务程序。
中断返回时,仍然返回到这条死循环指令,继续等待中断,而不是返回到该指令的下一条指令。这是因为执行sjmp $后,pc 仍指向这条指令,中断的断点就是 [3] 这条指令的首字节地址。
扩展资料1)在51中,与外部存储器ram打交道的只可以是a累加器。所有需要送入外部ram的数据必需要通过a送去,而所有要读入的外部ram中的数据也必需通过a读入。
在此我们可以看出内外部ram的区别了,内部ram间可以直接进行数据的传递,而外部则不行,比如,要将外部ram中某一单元(设为0100h单元的数据)送入另一个单元(设为0200h单元),也必须先将0100h单元中的内容读入a,然后再送到0200h单元中去。
2)要读或写外部的ram,当然也必须要知道ram的地址,在后两条指令中,地址是被直接放在dptr中的。而前两条指令,由于ri(即r0或r1)只是一个8位的寄存器,所以只提供低8位地址。因为有时扩展的外部ram的数量比较少,少于或等于256个,就只需要提供8位地址就够了。
3)使用时应当首先将要读或写的地址送入dptr或ri中,然后再用读写命令。
参考资料来源:
上一篇何故厚待什么意思?
下一篇眼花缭乱的花是什么意思