8085 微處理器中 POP rp 指令


在 8085 指令集中,使用助記符 **POP**,我們可以透過 **rp**(暫存器對,例如 BC、DE、HL 或 AF)從堆疊頂部彈出 2 個位元組。其中 AF 是由標誌暫存器和累加器暫存器組成的暫存器對,也稱為 PSW(處理器狀態字)。在 PSW 中,累加器是 MS 位元組,標誌暫存器是 LS 位元組。

助記符,運算元 操作碼(十六進位制) 位元組數
POP B C1 1
POP D D1 1
POP H E1 1
POP PSW F1 1

在上文中提到的操作碼中,2 位用於表示暫存器對。2 位有 4 種組合,因此可以使用 POP 指令指定 4 個暫存器對。如前所述,它們是 BC、DE、HL 和 AF 或 PSW。

注意,對於 LXI 指令,可以使用 4 個可能的暫存器對,即 BC、DE、HL 和 SP。因此,同一指令不能同時使用 SP 和 PSW。

rp 程式碼 暫存器對
0 0 BC
0 1 DE
1 0 HL
1 1 SP 或 PSW,但不能同時使用。

讓我們考慮以下示例,以便更好地理解指令的操作。

這裡我們考慮指令 POP D,它屬於該類別的一個指令。由於 rp 可以具有四個值中的任何一個,因此此類指令有四個操作碼。它在記憶體中只佔用 1 個位元組。**POP D** 是此類指令的一個示例。它是一個 1 位元組指令。下面用一個示例顯示此指令執行的結果。

之前 之後

(BC)

AABBH AABBH

(SP)

3FFEH 4000H

(3FFFH)

AAH AAH

(3FFEH)

BBH BBH

(DE)

任意值 AABBH

地址 十六進位制程式碼 助記符 註釋
2000 01 LXI B, AABBH 用 AABBH 初始化 BC 暫存器對
2001 BB 低位位元組 BBH
2002 AA 高位位元組 AAH
2003 31 LXI SP,4000H 用 4000H 初始化 SP
2004 00 低位位元組 00H
2005 40 高位位元組 40H
2006 C5 PUSH B AAH 將移動到 3FFFH,BBH 將移動到 3FFEH
2007 D1 POP D 彈出並用堆疊內容初始化 DE 暫存器對

針對該指令 **POP D** 執行的時序圖如下:

POP

**總結** - 因此,此指令 **POP** 需要 1 個位元組、3 個機器週期(操作碼提取、記憶體讀取、記憶體讀取)和 10 個 T 狀態才能執行,如時序圖所示。

更新於:2019-07-30

7K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.