1、两过程定义与作用
子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。
子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序在功能上具有相对的独立性,在执行主程序的过程中往往被多次调用,甚至被不同的程序所调用。一般微机首先执行主程序,碰到调用指令就转去执行子程序,子程序执行完后,返回指令就返回主程序断点(即调用指令的下一条指令),继续执行没有处理完的主程序,这一过程叫做(主程序)调用子程序过程。
子程序结构可简化程序,防止重复书写错误,并可节省内存空间。计算机中经常把常用的各种通用的程序段编成子程序,提供给用户使用。用户在自己编写的程序中,只要会调用这些子程序,就可大大简化用户编程的困难。
中断是计算机中央处理单元CPU与外设I/O交换数据的一种方式,除此方式外,还有无条件、条件(查询)、存贮器直接存取DMA和I/O通道等四种方式。由于无条件不可靠,条件效率低,DMA和I/O通道两方式硬件复杂,而中断方式CPU效率高,因此一般大多采用中断方式。
中断概念是当计算机正在执行某一(主)程序时,收到一中断请求,如果中断响应条件成立,计算机就把正在执行的程序暂停一下,去响应处理这一请求,执行中断服务程序,处理完服务程序后,中断返回指令使计算机返回原来还没有执行完的程序断点处继续执行,这一过程称为中断过程。有了中断,计算机才能具有并行处理,实时处理和故障处理等重要功能。
2、两过程的联系与区别
21联系
中断与调用子程序两过程属于完全不同的概念,但它们也有不少相似之处。两者都需要保护断点(即下一条指令地址)、跳至子程序或中断服务程序、保护现场、子程序或中断处理、恢复现场、恢复断点(即返回主程序)。两者都可实现嵌套,即正在执行的子程序再调另一子程序或正在处理的中断程序又被另一新中断请求所中断,嵌套可为多级。
正是由于这些表面上的相似处,很容易使学生把两者混淆起来,特别是把中断也看为子程序,这就大错特错了。
22区别
中断过程与调用子程序过程相似点是表面的,从本质上讲两者是完全不一样的。
两者的根本区别主要表现在服务时间与服务对象不一样上。首先,调用子程序过程发生的时间是已知和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序,调用指令所在位置是已知和固定的。而中断过程发生的时间一般的随机的,CPU在执行某一主程序时收到中断源提出的中断申请时,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的(软中断发生时间是固定的),也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的;其次,子程序完全为主程序服务的,两者属于主从关系,主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序两者一般是无关的,不存在谁为谁服务的问题,两者是平行关系;第三,主程序调用子程序过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合系统,需要专门的硬件电路才能完全中断处理的过程;第四,子程序嵌套可实现若干级,嵌套的最多级数由计算机内存开辟的堆栈大小限制,而中断嵌套级数主要由中断优先级数来决定,一般优先级数不会很大。
呵呵 为你正确解答:
使用调用指令LCALL 可以去调用已经编写好了的子程序。
使用格式:
LCALL 子程序名字(即子程序的首地址 用符号表示 叫符号地址)
例如:现有一个子程序
YS1MS: MOV R7,# 4
LL1: MOV R6,#200
LL2: DJNZ R6,LL2
DJNZ R7,LL1
RET
可以在主程序中 调用子程序
LCALL YS1MS
如满意 请选择满意回答
我没学过VB,但是C里的子函数都是你调用才运算的呀,函数的类型就是返回值的类型,如float count(int a){。。。;return z;}就定义了一个返回值为float型的函数
子程序调用指令是指调用子程序的指令,包括调用指令和返回指令。
在进行程序设计时,一般都把常用的程序段编写成独立的子程序或过程,在需要时随时调用,调用子程序需要用到调用指令。子程序执行完毕,就需要用返回指令返回到主程序。
调用子程序的指令格式子程序调用的指令格式:M98 P单次调用指令,P后跟被调用的子程序号M98 P L重复调用子程序指令,L后跟重复调用的次数子程序的格式:子程序号:是调用入口地址,必须和主程序中的子程序调用指令中所指向的程序号一致。子程序结束:M99。
子程序简介:
一次装夹加工多个形状相同或刀具运动轨迹相同的零件,即一个零件有重复加工部分的情况下,为了简化加工程序,把重复轨迹的程序段独立编成一程序进行反复调用,这重复轨迹的程序称为子程序,而调用子程序的程序称主程序。
在子程序中调用子程序与在主程序中调用子程序方法一致。在使用子程序编程时,应注意主、子程序使用不同的编程方式。一般主程序中使用G90指令,而子程序使用G91指令,避免刀具在同一位置加工。当子程序中使用M99指令指定顺序号时,子程序结束时并不返回到调用子程序程序段的下一程序段,而是返回到M99指令指定的顺序号的程序段,并执行该程序段。
CALL在接通的时候作用,跳过CALL P1后面的主程序,先执行P1子程序,然后返回执行CALL后面的主程序。P1作为指针存在的。如果CALL没有接通,则不执行CALL,而直接执行主程序。CALL程序可以嵌套,看第二个图。子程序可以调用另一个子程序。如图所示:
扩展资料:
1、能够设置不同类型产品的工位数量及位置参数,并能够在线监控运行过程;
2、设备 *** 作灵活方便,能够实现启动与暂停,自动与手动模式切换,计数与清零,气缸下压时间调整等;
3、螺丝的自动排放,送料,固定,由机器一次性自动完成,不需人工辅助;
4、高速的生产节拍,可实现单工位速度不低于 1-15 件/秒。定位精度高,位置误差不大于 002 毫米。
参考资料来源:百度百科-三菱FX2NPLC指令应用详解
以上就是关于说明子程序调用和中断的区别全部的内容,包括:说明子程序调用和中断的区别、单片机中如何调用写好的子程序、C语言的子程序该怎么调用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)