汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-09-05 12:17] 习题4.7

在汇编语言中,主程序和子程序之间如何传递参数? 请举例说明每种方法。并比较。

答:
①利用指定的寄存器传递参数:
利用寄存器传统参数就是把参数放在指定的寄存器中。这种传递方法实现简单调用方便,但是只适用于参数较少的情况。

②利用指定的存储单元传递参数:
如果要传递的参数较多的情况下,可以利用指定存储单元的内存变量来传递参数。优点是子程序要处理的数据或要送出的结果都有独立的存储单元。编写程序不容易出错。缺点是通用性很差。

③利用堆栈传递参数:
可以使用堆栈传递入口参数, 主程序在调用子程序之前,把需要传递的参数依次入栈,子程序从栈中取得入口参数;如果使用堆栈传递出口参数,那么子程序在返回前,把需要返回的参数存入堆栈,主程序在堆栈中取出出口参数。这种方法的有点事不沾寄存器,也无需使用额外的存储单元。缺点就是由于参数和子程序的返回地址混在一起,很复杂。
通常的情况是利用堆栈传递入口参数,而利用寄存器传递出口参数。

④利用call后续区传递参数:
这种方法在X86系列汇编语言中使用不多。
评论次数(0)  |  浏览次数(305)  |  类型(汇编习题集) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码