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內容的解釋
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP