首页
社区
课程
招聘
未解决 [求助]萌新求问:64汇编开辟空间问题
发表于: 2020-12-24 21:05 2005

未解决 [求助]萌新求问:64汇编开辟空间问题

2020-12-24 21:05
2005


 

如图,我附加了计算器。
图中红框处,sub rsp,0x20。这个应该就是给参数开辟空间吧?

 

但是我在网上查资料,以及自己在VS里面写程序调试,都得到同一个结论:当参数为0-4个的时候,应该开辟28个字节空间的……

 

那为什么有的程序里面,它开辟的是20个字节的空间呢?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-12-24 21:07 被大鲤鱼编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 735
活跃值: (384)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
2

0x20 != 20 


而且0x20刚好可以存 4个变量

最后于 2020-12-24 21:16 被你与明日编辑 ,原因:
2020-12-24 21:14
0
雪    币: 6376
活跃值: (3902)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你与明日 0x20 != 20 而且0x20刚好可以存 4个变量
20是十六进制的啊,十进制是32,确实是4*8.我不是问十进制跟十六进制啊……我问的是,sub rsp,0x20 跟sub rsp,0x28的问题……
2020-12-24 21:33
0
雪    币: 2535
活跃值: (4686)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
对齐
2020-12-24 22:28
0
雪    币: 6376
活跃值: (3902)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
默NJ 对齐
我查资料,跟自己用VS调试得出结论:参数为4个或以下时,都是开辟0x28个字节空间,也就是按照16n+8对齐的。然后我忽然发现有些程序里面,它只开辟了0x20个字节空间,所以我就纳闷,它为什么不按照16n+8对齐……
2020-12-24 22:31
0
雪    币: 181
活跃值: (636)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
因为是调用函数需要的
2020-12-24 22:36
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
大鲤鱼 我查资料,跟自己用VS调试得出结论:参数为4个或以下时,都是开辟0x28个字节空间,也就是按照16n+8对齐的。然后我忽然发现有些程序里面,它只开辟了0x20个字节空间,所以我就纳闷,它为什么不按照1 ...
因为上面有个push
2020-12-25 12:05
0
游客
登录 | 注册 方可回帖
返回
//