計算機體系結構中的記憶體棧是什麼?


棧可以透過分析計算機記憶體中的一個區域來執行棧操作,並利用處理器暫存器作為棧指標在CPU中執行。這種方法是在連線到CPU的隨機存取儲存器中執行的。

計算機記憶體的一個區域被分成三個段,例如程式、資料和棧。程式中下一條指令的地址儲存在程式計數器(PC)中。地址暫存器(AR)指向資訊的陣列。SP持續影響堆疊頂部元素的地址。

三個與公共匯流排連線的暫存器是PC、AR和SP。PC可以在取指令階段讀取指令。在執行階段使用地址暫存器讀取運算元。使用棧指標將元素壓入或彈出棧。

在圖中,SP指向起始值“2001”。因此,棧隨著地址的減小而增長。第一個元素儲存在地址2000,下一個元素儲存在地址1999,最後一個元素儲存在地址1000。

資料暫存器可以將元素讀入或讀出棧。它可以使用push操作將新元素插入棧。

SP ← SP – 1

K ← SP [DR]

它可以將另一個元素插入棧中,棧指標減1。它可以指向下一個位置/字的地址。使用記憶體寫操作將DR中的字插入棧頂。

它可以從棧中刪除元素。它可以使用pop操作,如下所示:

DR ← K [SP]

SP ← SP + 1

將頂部元素讀入DR,然後將棧指標減1以指向棧中的下一個元素。

兩個處理器暫存器可以檢查堆疊限制。一個處理器暫存器影響上限(1000),另一個影響下限(2001)。在push操作期間,將SP與上限進行比較以檢查堆疊是否已滿。在pop操作期間,將SP與下限進行比較以檢查堆疊是否為空。

更新於:2021年7月24日

12K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告