首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HLA中的激活记录

HLA中的激活记录
EN

Stack Overflow用户
提问于 2011-12-10 19:49:03
回答 1查看 400关注 0票数 1

在HLA中,参数究竟是如何存储在激活记录中的?

我读过很多关于这个主题的文章,但问题是,当参数是“小于4字节”的数据类型时。

例如:

代码语言:javascript
复制
Procedure proc(VAL i:int32; VAL j:int16; VAL k:int16);@nodisplay;

(注意,所有参数都是VAL)

由于在任何地方都没有提到,所有参数都分配(至少)一个4字节的块,所以我希望k在EBP+8上,j在EBP+10上,I在EBP+12上。

但根据一些stdout.puts的说法,情况并非如此。(至少在我的系统上没有)k在EBP+8上,j在EBP+12上,我在EBP+16上。

是否有任何资源指出,参数分配4字节块?还是我的HLA行为不当?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-11 12:28:50

局部变量和参数存储在堆栈上,堆栈在32位模式下一次分配一个固定的32位。即使您的参数小于32位,它们仍然占据堆栈上的32位。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8459374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档