中断调⽤和⼦程序的调⽤的异同
1、两过程定义与作⽤
⼦程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分⽀(判断)、循环、⼦程序和查表等5种。
⼦程序是⼀组可以公⽤的指令序列,只要给出⼦程序的⼊⼝地址就能从主程序转⼊⼦程序。⼦程序在功能上具有相对的独⽴性,
在执⾏主程序的过程中往往被多次调⽤,甚⾄被不同的程序所调⽤。⼀般微机⾸先执⾏主程序,碰到调⽤指令就转去执⾏⼦程序,⼦
程序执⾏完后,返回指令就返回主程序断点(即调⽤指令的下⼀条指令),继续执⾏没有处理完的主程序,这⼀过程叫做(主程序)
调⽤⼦程序过程。
⼦程序结构可简化程序,防⽌重复书写错误,并可节省内存空间。计算机中经常把常⽤的各种通⽤的程序段编成⼦程序,提供给⽤户
调用子程序的例子使⽤。⽤户在⾃⼰编写的程序中,只要会调⽤这些⼦程序,就可⼤⼤简化⽤户编程的困难。
中断是计算机中央处理单元CPU与外设I/O交换数据的⼀种⽅式,除此⽅式外,还有⽆条件、条件(查询)、存贮器直接存取DMA
和I/O通道等四种⽅式。由于⽆条件不可靠,条件效率低,DMA和I/O通道两⽅式硬件复杂,⽽中断⽅式CPU效率⾼,因此⼀般⼤多采⽤
中断⽅式。中断概念是当计算机正在执⾏某⼀(主)程序时,收到⼀中断请求,如果中断响应条件成⽴,计算机就把正在执⾏的程序暂停⼀下,去响应处理这⼀请求,执⾏中断服务程序,处理完服务程序后,中断返回指令使计算机返回原来还没有执⾏完的程序断点处继续执⾏,这⼀过程称为中断过程。有了中断,计算机才能具有并⾏处理,实时处理和故障处理等重要功能。
2、两过程的联系与区别
2.1联系
中断与调⽤⼦程序两过程属于完全不同的概念,但它们也有不少相似之处。两者都需要保护断点(即下⼀条指令地址)、跳⾄⼦程序
或中断服务程序、保护现场、⼦程序或中断处理、恢复现场、恢复断点(即返回主程序)。两者都可实现嵌套,即正在执⾏的⼦程序再调另⼀⼦程序或正在处理的中断程序⼜被另⼀新中断请求所中断,嵌套可为多级。
正是由于这些表⾯上的相似处,很容易使学⽣把两者混淆起来,特别是把中断也看为⼦程序,这就⼤错特错了。
2.2区别
中断过程与调⽤⼦程序过程相似点是表⾯的,从本质上讲两者是完全不⼀样的。
两者的根本区别主要表现在服务时间与服务对象不⼀样上。⾸先,调⽤⼦程序过程发⽣的时间是已知和固定的,即在主程序中的调⽤
指令(CALL)执⾏时发⽣主程序调⽤⼦程序,调⽤指令所在位置是已知和固定的。⽽中断过程发⽣的时间⼀般的随机的,CPU在执⾏某⼀主程序时收到中断源提出的中断申请时,就发⽣中断过程,⽽中断申请⼀般由硬件电路产⽣,申请提出时间是随机的(软中断发⽣时间是固定的),也可以说,调⽤⼦程序是程序设计者事先安排的,⽽执⾏中断服务程序是由系统⼯作环境随机决定的;其次,⼦程序完全为主程序服务的,两者属于主从关系,主程序需要⼦程序时就去调⽤⼦程序,并把调⽤结果带回主程序继
续执⾏。⽽中断服务程序与主程序两者⼀般是⽆关的,不存在谁为谁服务的问题,两者是平⾏关系;第三,主程序调⽤⼦程序过程完全属于软件处理过程,不需要专门的硬件电路,⽽中断处理系统是⼀个软、硬件结合系统,需要专门的硬件电路才能完全中断处理的过程;第四,⼦程序嵌套可实现若⼲级,嵌套的最多级数由计算机内存开辟的堆栈⼤⼩限制,⽽中断嵌套级数主要由中断优先级数来决定,⼀般优先级数不会很⼤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论