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

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