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

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

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

MC/MCR指令为主控指令,当有一段连续的指令都有一个相同的条件时,若每条指令都写入这个条件势必麻烦,这是主控指令就发挥了作用,用这个条件触发主控指令,然后把这段程序放在主控指令中间,这样就相当于这段程序的每段程序都串上了这个条件

在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。

堆栈是一个特定的存储区或寄存器,它的一端是固定的,另一端是浮动的。对这个存储区存入的数据,是一种特殊的数据结构。所有的数据存入或取出,只能在浮动的一端(称栈顶)进行,严格按照“先进后出”的原则存取,位于其中间的元素,必须在其栈上部(后进栈者)诸元素逐个移出后才能取出。在内存储器(随机存储器)中开辟一个区域作为堆栈,叫软件堆栈;用寄存器构成的堆栈,叫硬件堆栈。

扩展资料:

栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据在多个线程或者多个栈之间是不可以共享的,但是在栈内部多个值相等的变量是可以指向一个地址的,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

参考资料来源:百度百科-栈

参考资料来源:百度百科-堆栈

这个问题问得不好。

参数传递有很多中方式,可以用全局变量,可以用数据结构,可以用指针,各种方式都有优缺点。

全局变量传递参数不占用堆栈,对RAM捉襟见肘的单片机来说,是一个很好的方法,但是使用过多的全局变量第一不利于程序维护和扩展移植,第二不能保证在函数的生命周期内不被其他地方破坏。

数据结构指针常用于传递数量较多的参数,主要是能够让编译器自动帮你寻址和读取,这只是编程思想和编程习惯的问题了


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

原文地址:https://54852.com/yw/11201738.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存