8085微處理器中的堆疊和堆疊指標


堆疊是一個後進先出 (LIFO) 的資料結構,它在RAM區域中實現,用於在微處理器跳轉到子程式時儲存地址和資料。然後,返回地址被壓入此堆疊。此外,我們還可以使用堆疊來交換兩個暫存器和暫存器對的值。

在程式設計師對8085的理解中,到目前為止只討論了通用暫存器A、B、C、D、E、H和L以及標誌暫存器。但在8085的完整程式設計師檢視中,還有兩個16位寬的特殊用途暫存器。它們是堆疊指標SP和程式計數器PC。堆疊指標暫存器將儲存堆疊頂部位置的地址。程式計數器是一個暫存器,它始終儲存記憶體位置的地址,從該位置將獲取下一條要執行的指令。下圖顯示了8085的完整程式設計師檢視。

圖:8085的程式設計師檢視

SP是一個特殊的16位暫存器。它包含一個記憶體地址。假設SP的內容為FC78H,則8085對其解釋如下:

記憶體位置FC78H、FC79H……FFFFH包含有用的資訊。換句話說,這些位置被視為已填充的位置。記憶體位置FC77H、FC76H……0000H沒有任何有用的資訊。換句話說,這些位置被視為空位置。

在堆疊上,我們可以執行兩個操作:PUSH和POP。在PUSH操作中,SP暫存器減2,並將新資料項插入堆疊頂部。另一方面,在POP操作中,必須從堆疊頂部刪除資料項,並且SP暫存器將增加2。

因此,SP的內容指定了堆疊中最頂端的可用位置。換句話說,它指示具有最小地址且包含有用資訊的記憶體位置。下圖對此進行了圖示表示:

圖:SP內容的解釋

更新於:2023年10月4日

30K+ 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.