2011-05-28 77 views
1

可能重複:
Why do stacks typically grow downwards?爲什麼堆棧增長到較低的地址?

每個體系都我所看到的,堆在推值給出更低的內存地址的方式增長。這有什麼理由嗎?

+0

非常有趣的問題!幾十年前,當堆棧首次被髮明時,RAM很昂貴並且供不應求。所以堆棧設計者爲了牧養有價值的RAM,向下堆放堆棧。這意味着每當有東西被推入堆棧時,就會使用越來越少的RAM。 – 2011-05-28 20:55:03

+0

@Pete:開玩笑吧?我認爲 – sehe 2011-05-28 21:17:56

回答

1

最低的地址總是保留給特殊的寄存器。選擇最低值可確保無論微型版本(可變數量的RAM)如何,特殊寄存器始終位於同一位置。

通過在最頂端啓動堆棧,您只需要知道一件事。頂部地址。

它可以分解兩個獨立的設計問題。保留的寄存器放置和堆棧原點。

+0

我建議你擴大你的答案並增加一點清晰度。 閱讀完您的短語後 「最低地址始終保留給特殊寄存器」。彙編語言的新手今天問我「如何使用RAM作爲寄存器」(顯然你不能 - 寄存器在CPU上,STACK是RAM中的一個區域,RAM不在CPU上)。 – Ted 2014-02-22 14:08:02