plc在子程序用跳转指令后,是回到主程序还是回到子程序

plc在子程序用跳转指令后,是回到主程序还是回到子程序,第1张

跳转指令,顾名思义跳过一段程序到达指定的地方,即当跳转条件满足时将跳过一段程序到达指针指定点在执行程序,这中间的程序将不被执行,而调用子程序是当条件满足时将执行子程序,执行完之后再继续往下执行程序

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指令从主程序转入子程序或从子程序跳转回主程序,为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9763151.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存