子程序结束的程序代码一般是"return"。在程序中调用子程序时,程序会跳转到子程序中执行代码,执行完毕后再返回到原纤碧来的程序位置继续执行。而子程序返回到主程序的方法就是使用"return"语句。
在计算机科学中,子程序,是一个毁兄举大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
子程序的末尾一定要有RETI指令,子程序的调用是LCALL和ACALL。
RETI是中断返回指令,这条指令的功能和RET指令相似,2条指令的不同之处是:本指令清除了中断响应时,被置1的MCS-51内部不可寻址的 “优先级生效”触发器清零。
执行这条指令后,CPU将会把堆栈中保存着的地址取出,送回PC,那么程序就会从主程序的中断处继续往下执行了。中断指令“RETI”作为中断跳出指令,除了将堆栈中保存着的地址取出,送回PC,使程序从主程序的中断处继续往下执行的作用外,还有将“优先级生效”触发器清零的功能。
扩展资料
单片机汇编指令中RETI和RET的区别
通常情况下,在普通的汇编子程序中用RET做返回,在中断服务子程序中用RETI起中断返回作用。两条指令都能从堆栈中d出断点地址并装入PC中,使CPU回到原来主程序的断点处继续运行。
然而,RET和RETI有橡搏本质的区别:当某一中断源响应后,单片机中的标志寄存器flag H和flag L其中的一个将会自动置位,用于阻止比它低级或同级的中断触发。RETI可以清除“优先级激活触发器”(即flag寄存器),以保证后续梁粗祥中断源的及时响应。
所以,当把RETI替换为RET后,该程序在第一次运行时可能不会出凳培错,但在第二次运行时就会出错了。
CNC指令M99的意思是子程序结束返回/重复执行。M99在子程序的结尾,调用子程序时,子程序中的格式必须以M99结尾,当子程序执行到M99指令,表示子程序执行完,返回主程序。
把程序中某些固定顺序和重复出现的程序单独抽出来,按一定格式变成一个程序供调用,这个程序指旅陆就是常说的子程序,这样可以简化主程序的编制。子程序可以被主程序调用,同时子程序也可以调用另一个子程序。这样可以简化程序的编制和节省CNC系统的内存空间。
子程序必须有一程序号码,且以M99作为子程序的结束指令。主过程调用子程序的指令格式如下:
M98 P___L___;
其中P为被调用的子程序号,L为重复调用的次数
例如:M98 P1234L4
主程序调用同一子程序执行加工,最多可执行999次,且子程序亦可再调用另一子程序执行加工唯顷,最多可调用4层子程序(不同的系统其执行的次数及层次可能不同)。
例:以HNC-21T系统子程序指令,加工图2-11工件上的四个槽。
扩展资料:
其他M指令含义:
M00程序暂停
M01选择停止
M02程序结束
M03主轴正转
M04主轴反转
M05主轴停止
M06刀具交换
M08冷却开
M09冷却关
M18主轴定向解除
M19主轴定向
M22刀库返回
M23刀库进主轴
M29刚性攻丝
M30程序结束并返回程序头
M98调用子程序
M102换刀点
参考资料来源:百度镇颤百科--数控加工中心M指令
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)