
主程序调用子程序编程指令是:右击——插入——OB,然后填上OB100,OB由系统调用,并非由用户调用。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。函数在面向过程的语言中已经出现。是结构和类的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
转子指令和返回指令:
在子程序的调用与返回过程中,子程序的入口地址是指子程序第一条指令的地址。用于调用子程序、控制程序的执行从主程序转向子程序的指令称为专注指令(子程序调用指令、过程调用指令)。为了正确调用子程序,必须在转子指令中给出子程序的入口地址。
主程序中转子指令的下一条指令的地址称为断点,断点是子程序返回主程序的返回地址,从子程序返回主程序的指令称为返回指令。为了在执行返回指令时能够正确地返回主程序,转子指令应具有保护断点的功能。
执行转子指令时保护断点的方式有多种,常用的有:将断点保存到子程序第一条指令的前一个字单元;将断点保存到某一约定的寄存器中;将断点压入堆栈。
当然可以强行跳回主程序,不影响中断标志位的清零,只要进入中断,该硬件清零的就自动清零,但强行跳回主程序,单片机会认为一直在执行中断程序,因此以后有中断发生时也不会再进入中断程序。所以不能这样做,用RETI就会跳回主程序。
前两天刚学了一招:
#define Reset() ((void (code ) (void)) 0x0000) ()
然后在需要返回程序开始的地方直接调用Reset();就可以了。
带参就可以了。子程序按参数执行参数下的代码。可以即时返回也可以继续执行下面的代码。
版本 2
子程序 GoTo
参数 参数一, 整数型, 可空
判断开始 (参数一 = 1)
' 这里是参数一
信息框 (到文本 (参数一), 0, )
返回 ()
默认
判断结束
判断开始 (参数一 = 2)
' 这里是参数一
信息框 (到文本 (参数一), 0, )
返回 ()
默认
判断结束
子程序 子程序2
GoTo (1)
子程序 子程序3
GoTo (2)
以上就是关于主程序调用子程序编程指令是什么全部的内容,包括:主程序调用子程序编程指令是什么、单片机中中断服务子程序没执行完能强行跳回主程序吗,若不能为什么若能,相应的中断标志位会被清零吗、C语言中怎么从子程序返回到程序的开始等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)