
跳转指令,顾名思义跳过一段程序到达指定的地方,即当跳转条件满足时将跳过一段程序到达指针指定点在执行程序,这中间的程序将不被执行,而调用子程序是当条件满足时将执行子程序,执行完之后再继续往下执行程序
MC/MCR指令为主控指令,当有一段连续的指令都有一个相同的条件时,若每条指令都写入这个条件势必麻烦,这是主控指令就发挥了作用,用这个条件触发主控指令,然后把这段程序放在主控指令中间,这样就相当于这段程序的每段程序都串上了这个条件
最简单的办法,用全局变量吧。
只要有一个“停止”的布尔变量就行。程序初始化时置F,主程序和子程序都读取它连接while循环的结束条件(用默认的“真时停止”),任何一方点STOP按钮的时候给他置T即可。
这个当然是能使用LJMP指令重主程序跳转到子程序,或从子程序跳回主程序,但一般是不允许这样使用LJMP指令的,很容易造成程序运行混乱。因为调用子程序保护现场要将当前的地址压入堆栈,子程序返回时,会d出该地址赋值给PC指针。如果使用,必须满足以下条件:
1、跳出跳入成对出现,也就是说,从主程序用LJMP跳转到子程序,那么在子程序中的RET前,必须是用LJMP指令跳回。
2、不成对出现,但是如果子程序是LJMP跳转来的控制,那么在RET前,需要压入返回位置的地址。比如:
主程序:
LJMPSUB01
CON: ;返回地址
SUB: ;子程序
SUB01: ;跳转到的地址
MOV DPTR,#CON ;返回前处理。
PUSH DPH
PUSH DPL
RET
以上就是关于plc在子程序用跳转指令后,是回到主程序还是回到子程序全部的内容,包括:plc在子程序用跳转指令后,是回到主程序还是回到子程序、labview中,在执行完子程序后如何返回到主程序界面。、单片机中,能否使用LJMP指令从主程序转入子程序或从子程序跳转回主程序,为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)