gpt4 book ai didi

c - 如何查找堆栈是向上还是向下增加?

转载 作者:太空宇宙 更新时间:2023-11-04 00:56:10 25 4
gpt4 key购买 nike

如何判断堆栈是向上还是向下增加?

最佳答案

非常依赖于平台,甚至依赖于应用程序。

Vino 发布的代码仅适用于在堆栈上传递参数并按此顺序从堆栈分配局部变量的目标。很多编译器会给参数分配固定的内存地址,或者在寄存器中传递参数。虽然很常见,但在堆栈上传递参数是将数据传入和传出函数的效率最低的方法之一。

查看已编译应用的反汇编,看看编译器生成了哪些代码。如果您的目标具有编译器正在使用的 native 堆栈操作命令(如 PUSH 和 POP),则 CPU 数据表/引用手册将告诉您堆栈增长的方向。但是,编译器可能会选择实现自己的堆栈,在这种情况下,您将不得不进行一些挖掘。

或者,读取堆栈指针,压入堆栈,然后再次读取堆栈指针。比较第一次和第二次读取的结果,以确定指针移动的方向。

供将来引用:如果您包含有关目标架构(嵌入式?PC?Linux、Windows?GCC?VC?Watcom?等等等等)的一些详细信息,您将获得更有意义的答案。

关于c - 如何查找堆栈是向上还是向下增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com