子程序的执行至少包含调用及返回两个步骤。通过执行子程哗闹雀序调用指令,CPU会自动地保存当前程序断点(程序被打断的地方),然后转向执行被调用的子程序;当子程序执行完毕后,通弯桥过执行子程序返回指令使CPU返回断点处继续执行指令。
支持子程序调用的数据结构是是栈,栈支持子程序调用。
关于栈:
栈衡族是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要保存主程序的当前状态,符合栈的特性。栈是一种只能在一端进行插入或删除的线性表。
栈是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取洞拦团。这就如同要取出放在箱子里面底下的东西(放入的比较早的物体),首先要移开压在它上面的物体(放入的比较晚的物体)。
内存中的栈区处于相对较高的地址以地址的增长方向为上的话,栈地址是向下增长的。栈中分配局部变量空间,堆区是向上增长的用于分配程序员申请的内存空间。另外还有静态区是分配静态变量,全局变量空间的。只读区是分配常量和程序代码空间的。
由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数纳橘的运行过程中,运行后就释放掉,不可以再访问。栈在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。
数控子程序使用具体介绍:
1、在主程序中,调用子程序的指令是一个程序段,其格式随具体的数控系统而定,FANUC系统子程序调用格式为M98P--L--式中M98--子程序调用字;p--子程序列号;L--子程序调用次数。可以看出,子程序由程序调用字、子程序号和调用次数组成
2、子程序的返回:子程序返回主程序用指早隐令M99,它表示子程序运行结束,请返回到主程序。
3、子程序的嵌套:子程序调用下一级子程序称为嵌套。上一级子程序与下一级于程序的关系,与陆悔厅主程序与第一层子程序的关系相同。子程序可以嵌套多少层由具体的数控系统决前嫌定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)