导航:首页 > 软件知识 > 调用路径与子程序有什么区别

调用路径与子程序有什么区别

发布时间:2022-07-12 10:51:45

‘壹’ 系统调用与子程序调用的不同之处是什么

系统调用是操作系统提供的子程序调用。
另外,你自己还可以编写自己的调用函数,这就不是系统调用了。

‘贰’ 宏程序与子程序调用与区别

1.在汇编后产生的.obj文件中,子程序定义依然存在,而宏定义却不复存在。
2.子程序调用是在执行时通过CALL指令完成的,而宏调用是在汇编时进行宏展开,被相应宏体所取代。
3.将多次调用的一段代码定义为宏指令,与使用子程序相比,其执行速度要快(因为过程需要调用和返回),但目标代码长。
4.宏指令的参数是在汇编时进行形实替换的,而子程序的参数是在执行时通过寄存器或堆栈等方式传递的。

大概想到这些,供参考

‘叁’ 中断调用和子程序的调用的异同

1、两过程定义与作用

子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。

子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序在功能上具有相对的独立性,在执行主程序的过程中往往被多次调用,甚至被不同的程序所调用。一般微机首先执行主程序,碰到调用指令就转去执行子程序,子程序执行完后,返回指令就返回主程序断点(即调用指令的下一条指令),继续执行没有处理完的主程序,这一过程叫做(主程序)调用子程序过程。

子程序结构可简化程序,防止重复书写错误,并可节省内存空间。计算机中经常把常用的各种通用的程序段编成子程序,提供给用户使用。用户在自己编写的程序中,只要会调用这些子程序,就可大大简化用户编程的困难。

中断是计算机中央处理单元CPU与外设I/O交换数据的一种方式,除此方式外,还有无条件、条件(查询)、存贮器直接存取DMA和I/O通道等四种方式。由于无条件不可靠,条件效率低,DMA和I/O通道两方式硬件复杂,而中断方式CPU效率高,因此一般大多采用中断方式。

中断概念是当计算机正在执行某一(主)程序时,收到一中断请求,如果中断响应条件成立,计算机就把正在执行的程序暂停一下,去响应处理这一请求,执行中断服务程序,处理完服务程序后,中断返回指令使计算机返回原来还没有执行完的程序断点处继续执行,这一过程称为中断过程。有了中断,计算机才能具有并行处理,实时处理和故障处理等重要功能。

2、两过程的联系与区别

2.1联系

中断与调用子程序两过程属于完全不同的概念,但它们也有不少相似之处。两者都需要保护断点(即下一条指令地址)、跳至子程序或中断服务程序、保护现场、子程序或中断处理、恢复现场、恢复断点(即返回主程序)。两者都可实现嵌套,即正在执行的子程序再调另一子程序或正在处理的中断程序又被另一新中断请求所中断,嵌套可为多级。

正是由于这些表面上的相似处,很容易使学生把两者混淆起来,特别是把中断也看为子程序,这就大错特错了。

2.2区别

中断过程与调用子程序过程相似点是表面的,从本质上讲两者是完全不一样的。

两者的根本区别主要表现在服务时间与服务对象不一样上。首先,调用子程序过程发生的时间是已知和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序,调用指令所在位置是已知和固定的。而中断过程发生的时间一般的随机的,CPU在执行某一主程序时收到中断源提出的中断申请时,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的(软中断发生时间是固定的),也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的;其次,子程序完全为主程序服务的,两者属于主从关系,主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序两者一般是无关的,不存在谁为谁服务的问题,两者是平行关系;第三,主程序调用子程序过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合系统,需要专门的硬件电路才能完全中断处理的过程;第四,子程序嵌套可实现若干级,嵌套的最多级数由计算机内存开辟的堆栈大小限制,而中断嵌套级数主要由中断优先级数来决定,一般优先级数不会很大。

‘肆’ 系统调用和子程序调用有什么区别

钟翼翔,哈哈!
这个问题异还好答,问题是相同点难啊!找不到哦~~~~
它与一般用户子程序的区别是:系统调用程序是在核心态(即管态)下执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务,而一般的子程序调用是在用户态(即目态)下执行的。

‘伍’ 单片机调用中断服务子程序和调用子程序的区别是什么

中断服务子程序入口地址相对某一中断是固定的,调用子程序的偏移地址是随机的,基本过程差不多,返回时,中断服务子程序用的是reti
调用子程序是ret
调用中断服务子程序和调用子程序都会把当前偏移地址的下一地址压栈,但调用子程序的返回指令ret不影响标志位,reti从中断程序返回,并会清除内部相应的中断状态寄存器。
我说的是80c51的

‘陆’ 用CALL调用子程序和用中断调用子程序有什么区别

用CALL调用子程序和用中断调用子程序区别为:发生时间不同、关系不同、系统不同。

一、发生时间不同

1、用CALL调用子程序:在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。

2、用中断调用子程序:中断过程发生的时间一般是随机的,CPU在执行某一主程序时受到中断源提出的中断申请,就发生中断过程。

二、关系不同

1、用CALL调用子程序:子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。

2、用中断调用子程序:中断服务程序与子程序二者一般是无关的,两者是平行关系。

三、系统不同

1、用CALL调用子程序:主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路。

2、用中断调用子程序:中断处理系统是一个软、硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。

‘柒’ 什么是子程序什么是调用

我有一个main函数,但是我不想里面有太多代码,我就在main函数外面写一个能够实现一些作用的函数(这就叫子函数),再在main函数里面使用子函数(这就叫调用)

‘捌’ arm调用子程序与51调用子程序有什么区别

51:只有ACALL、LCALL两条子程序调用指令,其中ACALL只能在2^11范围内调用子程序,而LCALL可以调用任意位置的子程序。特点:使用指令时无任何后缀、修饰,硬件会自动保存断点,在被调用的子程序最后用一条RET指令便轻松返回断点;
ARM:只有BL(X)指令全范围调用子程序,BL指令是用B(跳转)指令扩展来的,表示在B到一个地址时,同时保存下条指令的地址到LR中,因此,在你的子程序中需要使用B/BX
LR指令来返回断点,或者使用MOV
PC,LR来返回。指令的后缀X,表示在调用或返回时是否需要切换处理器状态。
综合来说,调用子程序是没有本质区别的,不过51因为用途简单,硬件帮你做了更多的事情,比如一个RET就返回了,而ARM就复杂,灵活一些,傻瓜机和单反的区别。希望能帮到你

‘玖’ 调用中断服务程序和调用子程序有何区别

1.子程序调用是预先安排好的,程序中断是随机发生的;
2.调用子程序,是为主程序服务的,而中断程序与主程序的程序毫无关系;
3.子程序是由调用指令给出目标地址,中断是通过隐指令获得中断服务程序的入口地址

中断服务程序 调用子程
序随机产生的 程序中事先安排好的
保护断点、保护现场 只保护断点
为外设服务和处理各种事件 为主程序服务

阅读全文

与调用路径与子程序有什么区别相关的资料

热点内容
plc不亮了如何复制程序 浏览:353
德州文玩市场在哪里 浏览:258
什么数据适合关联规则分类 浏览:224
ems邮寄信息平台保存多久 浏览:3
股票市场行情哪个好 浏览:395
重庆皇田花卉市场在什么地方 浏览:50
中木集团墙饰怎么代理武汉 浏览:985
电路板的程序是怎么做的 浏览:134
考试信息管理平台id一般是什么 浏览:94
表与表之间的数据如何合计 浏览:613
遵义女装折扣代理哪个好 浏览:748
代理返款图片怎么做 浏览:200
代理国家的公司有哪些 浏览:997
有一个摄影技术跟vr挂钩叫什么 浏览:244
宜春乌龙茶代理需要什么条件 浏览:994
各种核算程序都有什么 浏览:779
沈阳计算技术研究所在哪里 浏览:801
饰品交易哪个平台最便宜 浏览:230
哪些业务不可以办理取消交易 浏览:190
子程序调用可以嵌套多少级 浏览:179