8085 微處理器中 PUSH rp 指令
在 8085 指令集中,PUSH rp 指令透過將其壓入堆疊頂端以上兩個位置來儲存暫存器對 rp 的內容。rp 代表以下暫存器對之一。
rp = BC, DE, HL, or PSW
由於 rp 可以具有四個值中的任何一個,因此此類指令有四個操作碼。它在記憶體中僅佔用 1 個位元組。
| 助記符,運算元 | 操作碼(十六進位制) | 位元組 |
|---|---|---|
| PUSH B | C5 | 1 |
| PUSH D | D5 | 1 |
| PUSH H | E5 | 1 |
| PUSH PSW | F5 | 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,但不能同時使用兩者。 |
讓我們以 PUSH B 作為此類別的示例指令。它是一個 1 位元組指令。
此指令執行的結果如下例所示。
| 之前 | 之後 | |
|---|---|---|
(BC) |
AABBH | AABBH |
(SP) |
4000H | 3FFEH |
(3FFFH) |
任何值 | AAH |
(3FFEH) |
任何值 | BBH |
| 地址 | 十六進位制程式碼 | 助記符 | 註釋 |
|---|---|---|---|
| 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 |
此指令 PUSH B 執行的時序圖如下所示:

總結 - 因此,此指令 PUSH B 需要 1 個位元組、3 個機器週期(操作碼獲取、記憶體寫入、記憶體寫入)和 12 個 T 狀態才能執行,如時序圖所示。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP