【发布时间】:2012-01-17 13:33:35
【问题描述】:
在HLA中,参数究竟是如何存储在激活记录中的?
我已经阅读了很多关于这个主题的文章,但是 问题是,当参数是任何“小于 4 字节”的数据类型时。
例如:
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 上,i 在 EBP+16 上。
是否有任何资源指出,参数分配 4 字节块? 还是我的 HLA 行为不端?
【问题讨论】:
标签: assembly record activation