当前位置:首页 > 技术心得 > 正文内容

宏与子程序的区别

xjtudll17年前 (2010-02-08)技术心得7880

宏和子程序都是为了简化源程序的编写,提高程序的可维护性,但是它们二者之间存在着以下本质的区别:
1、在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用;
2、汇编程序对宏通过宏扩展来加入其定义体,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序是执行同一程序段,因此,目标程序也得到相应的简化;
3、宏引用时,参数是通过"实参"替换"形参"的方式来实现传递的,参数形式灵活多样,而子程序调用时,参数是通过寄存器、堆栈或约定存储单元进行传递的;
4、宏引用语句扩展后,目标程序中就不再有宏引用语句,运行时,不会有额外的时间开销,而子程序的调用在目标程序中仍存在,子程序的调用和返回均需要时间。

总之,当程序片段不长,速度是关键因素时,可采用宏来简化源程序,但当程序片段较长,存储空间是关键因素时,可采用子程序的方法来简化源程序和目标程序。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/41/

标签: tenxTM87
分享给朋友:

“宏与子程序的区别” 的相关文章

如何通过程序清除蓝牙缓存的设备名称?

http://stackoverflow.com/questions/10793761/how-to-programmatically-clear-the-bluetooth-name-cache-in-android 现象: 一个已经配对过的蓝牙设备,修改名称之后,手机上显示的依旧是以前的名称,并...

老管3DJ6有可以直接替换的TO-92封装的型号吗?

老管3DJ6有可以直接替换的TO-92封装的型号吗?莫非这是一只无可替代的型号? 许多几十年前的“天价”三极管如今都有了性能更高的替换型号了,比如901x现在只卖几分钱一个。 但3DJ场效应管,好像没有发现可以直接替换的新型号。在网上搜索了一下,也没得到比较肯定的答案。 哪位...

CSDN、博客园文章图片无法复制粘贴的办法(不需要脚本)

CSDN、博客园文章图片无法复制粘贴的办法(不需要脚本)

本质就是利用浏览器的阅读器模式1、使用Edge浏览器在网址前面加read://例如:原网址:https://blog.csdn.net/qq_57139623/article/details/134045280阅读器模式:read://https://blog.csdn.net/qq_5713962...

图腾柱(Totem Pole)输出电路

图腾柱(Totem Pole)输出电路

由于此结构画出的电路图有点儿像印第安人的图腾柱(图中左下角的照片),所以叫图腾柱式输出(也叫图腾式输出)。输出级分别采用一个NPN型晶体管和一个PNP型晶体管。NPN管集电极接正电源(或接地),发射极接下面PNP管的发射极,同时输出;PNP管的集电极接地(或负电源)。两管的基极同时接 前级的控制...

太阳能板发电原理

太阳表面温度高达摄氏6000度,内部不断进行核聚变反应,并且以辐射方式向宇宙空间发射出巨大能量。人类有三个途径利用太阳能:光热转换、光电转换及光化转换。 光热转换即靠集热器把太阳能收集,可应用于将水加热,或在寒带地区的冬季,设计太阳能暖房让人抵抗低温。太阳能暖房系统由太阳能收集器、热储存装置、...

如何获取.NET Framework目录路径?

问题: 如何在C#应用程序中获取.NET Framework目录路径? 例如:“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727” 方法: 通过使用以下方法可以获取当前.NET应用程序活动的CLR安装目录的路径: Sys...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。