我知道在我个人熟悉的架构中(x86,6502等等) ,堆栈通常是向下增长的(也就是说,推到堆栈上的每个条目都会导致 SP 递减,而不是递增)。
我想知道这种现象的历史原理。我知道在一个统一的地址空间中,在数据段的另一端(比如说)启动堆栈是很方便的,所以只有当两端在中间发生冲突时才会出现问题。但是为什么传统上堆栈会占据最上面的部分呢?特别是考虑到这是如何与“概念”模型的对立面?
(请注意,在6502体系结构中,堆栈也是向下增长的,尽管它被绑定到一个256字节的页面,而且这个方向的选择似乎是随意的。)