为什么堆栈增长到较低的地址?
问题描述:
每个体系都我所看到的,堆在推值给出更低的内存地址的方式增长。这有什么理由吗?
答
最低的地址总是保留给特殊的寄存器。选择最低值可确保无论微型版本(可变数量的RAM)如何,特殊寄存器始终位于同一位置。
通过在最顶端启动堆栈,您只需要知道一件事。顶部地址。
它可以分解两个独立的设计问题。保留的寄存器放置和堆栈原点。
+0
我建议你扩大你的答案并增加一点清晰度。 阅读完您的短语后 “最低地址始终保留给特殊寄存器”。汇编语言的新手今天问我“如何使用RAM作为寄存器”(显然你不能 - 寄存器在CPU上,STACK是RAM中的一个区域,RAM不在CPU上)。 – Ted 2014-02-22 14:08:02
非常有趣的问题!几十年前,当堆栈首次被发明时,RAM很昂贵并且供不应求。所以堆栈设计者为了牧养有价值的RAM,向下堆放堆栈。这意味着每当有东西被推入堆栈时,就会使用越来越少的RAM。 – 2011-05-28 20:55:03
@Pete:开玩笑吧?我认为 – sehe 2011-05-28 21:17:56