我正在 Windows 上学习 x64 程序集以获得“乐趣”。Windows 上 x64 调用约定的MSDN 文档说:
调用者负责为被调用者分配参数空间,并且必须始终为 4 个寄存器参数分配足够的空间,即使被调用者没有那么多参数。这有助于简化支持 C 非原型函数和可变参数 C/C++ 函数。
由于我的函数不是 C 非原型函数或可变参数 C/C++ 函数,这是否意味着我总是可以使用[rsp+8]
to [rsp+32]
(假设调用后立即未修改的值rsp
)在我的函数中进行通用存储,例如局部变量?