我想我了解堆栈内存的基本知识,但我仍然不完全了解负责管理堆栈方式的机制 - 是编译器,cpu架构?它依赖于编程语言吗?
例如,我读到 ARM 在函数调用中倾向于减少堆栈的使用,因此函数的参数通常通过 4 个寄存器传递。但是,在我看来,这也可以使用其他 cpu 中的通用寄存器来实现。架构如何强加这种需求?
在其他地方,我读到在 FORTRAN 77 中没有使用堆栈。
还有堆栈向上/向下增长的问题。谁负责?
总的来说,我想知道它是否依赖于 cpu 以及它是如何强加的?否则谁对这些决定负责?
谢谢。