函数使用了堆栈的40032字节:超过了_64位函数参数与局部变量

本文详细介绍了64位函数参数传递的规则,包括前4个参数通过RCX, RDX, R8, R9寄存器传递,超过4个参数时如何利用堆栈,以及局部变量和参数的分析方法。通过实例解析,帮助理解64位函数调用过程中的堆栈管理。" 93143897,7242871,深度解析:卷积家族全览,"['深度学习', '卷积神经网络', '图像识别', 'AI算法', '计算机视觉']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

b5084c18a3663222fcbf3e5185ac915f.png

在之前的文章中,我们已经简单的了解了64位的一些参数的知识,下面我们从不同的情况对64位的堆栈与函数做详细的讲解。

首先,对于64位的函数,他的参数并不都是以push压栈的方式进行传递的,他的前4个参数分别通过RCX,RDX,R8,R9这几个寄存器进行传递(如图)

aa2919b8351b497ad694c35fe528784d.png

从图中的函数可以发现,64位的函数是不会对参数进行push的,而是将前4个参数传递给了RCX-R9这4个寄存器。从参数窗口,可以轻易的看到这些参数的数值。

那么在这种情况下如何分辨具体用到了哪些参数呢?

首先在函数调用处进行观察,一般来说,函数的参数在调用处附近会传递给RCX-R9这4个寄存器,并在函数内部进行调用。所以观察在函数调用前,看哪些寄存器被进行赋值。

其次在被调用函数头部进行观察,看4个寄存器中的哪些在函数中对其他内存进行赋值(如图)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值