8085 微處理器中的奇校驗呼叫 (CPO)
在 8085 指令集中,CPO 是一個助記符,代表“奇校驗呼叫”。這條指令用於在 P 標誌值為 0 時,跳轉到指令中提供的 16 位地址的子程式。如果 Z 標誌值為 1,程式流程將按順序繼續在主程式中執行。它是一個 3 位元組指令。
| 助記符,運算元 | 操作碼(十六進位制) | 位元組 |
|---|---|---|
| CPO 標籤 | E4 | 3 |
讓我們考慮以下示例程式碼以更好地解釋 -
| 地址 | 十六進位制程式碼 | 助記符 | 註釋 |
|---|---|---|---|
| 2000 | 31 | LXI SP, 5000H | SP ← 5000H. 初始化 SP |
| 2001 | 00 | 地址的低位位元組 | |
| 2002 | 50 | 地址的高位位元組 | |
| 2003 | 3E | MVI A, 40H | A ← 40H,用初始值 40H 初始化累加器 |
| 2004 | 40 | 40H 作為運算元 | |
| 2005 | 06 | MVI B, 30H | B ← 30H,用初始值 30H 初始化暫存器 B |
| 2006 | 30 | 30H 作為運算元 | |
| 2007 | 90 | SUB B | A ← A – B= 40H – 30H = 10H,由於 10H = 0001 0000B 是計算結果,所以 P = 0 |
| 2008 | E4 | CPO 2010H | 由於 P = 0,因此呼叫地址為 2010H 的子程式。所以現在程式的控制權將轉移到 2010H 位置。下一個指令的地址 200BH(即返回地址)將被壓入堆疊頂部。因此,4FFFH(SP – 1)將包含 20H,而 4FFEH(SP – 2)將分別包含 0BH。 |
| 2009 | 10 | 地址的低位位元組 | |
| 200A | 20 | 地址的高位位元組 | |
| 200B | 21 | LXI H, 4050H | HL ← 4050H,初始化 HL 暫存器對。執行 RET 指令後,控制權將返回到此指令。 |
| 200C | 50 | 地址的低位位元組 | |
| 200D | 40 | 地址的高位位元組 | |
| 200E | 77 | MOV M, A | M ← A,累加器的內容將被傳輸到記憶體位置 4050H,因為它是 HL 暫存器對指向的位置。因此,在 4050H 記憶體位置,將儲存累加器的內容 40H。 |
| 200F | 76 | HLT | 程式結束。 |
| 2010 | 80 | ADD B | A ← A + B ← 10H + 30H = 40H |
| 2011 | C9 | RET | 將控制權返回到地址 200BH。返回地址 200BH 將從堆疊頂部彈出。因此,從地址 4FFEH 彈出 0BH,從地址 4FFFH 彈出 20H,並且 SP 將根據其內容相應地獲取其初始地址 5000H。 |
針對此指令 CPO 2010H 執行的時間圖如下所示 -

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