
用CALL调用子程序和用中断调用子程序区别为:发生时间不同、关系不同、系统不同。
一、发生时间不同
1、用CALL调用子程序:在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。
2、用中断调用子程序:中断过程发生的时间一般是随机的,CPU在执行某一主程序时受到中断源提出的中断申请,就发生中断过程。
二、关系不同
1、用CALL调用子程序:子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。
2、用中断调用子程序:中断服务程序与子程序二者一般是无关的,两者是平行关系。
三、系统不同
1、用CALL调用子程序:主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路。
2、用中断调用子程序:中断处理系统是一个软、硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。
一、主体不同
1、调用中断服务程序:可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的。
2、调用子程序:是指调用子程序的指令,包括调用指令(转子指令)和返回指令(返主指令)。
二、特点不同
1、调用中断服务程序:当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作。
2、调用子程序:子程序调用指令用于实现程序与程序之间的转移,与转移指令不同(转移指令用于实现同一程序内的转移)。子程序调用指令还可以进行嵌套调用,即可调用别的子程序,还可以实现递归调用。
三、方式不同
1、调用中断服务程序:保护被中断进程现场。为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。
2、调用子程序:把常用的程序段编写成独立的子程序或过程,在需要时随时调用,调用子程序需要用到调用指令。
参考资料来源:百度百科-子程序调用指令
参考资料来源:百度百科-中断服务程序
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)