8085 中的 RIM 指令
在 8085 指令集中,讀取中斷掩碼。這是一個 1 位元組的多用途指令。它用於以下目的。
檢查 RST7.5、RST6.5 和 RST5.5 是否被遮蔽;
檢查中斷是否啟用;
檢查 RST7.5、RST6.5 或 RST5.5 中斷是否掛起;
執行序列資料輸入。
| 助記符,運算元 | 操作碼(十六進位制) | 位元組 |
|---|---|---|
| RIM | 20 | 1 |
為了獲取關於中斷系統的狀態資訊,讀取中斷掩碼指令提供了關於中斷系統的資訊,並且該指令可以用於序列資料輸入。透過這個 RIM 指令,8085 可以知道哪個中斷被遮蔽或未遮蔽等。執行 RIM 指令後累加器的內容提供了這些資訊。
因此,執行讀取中斷掩碼指令後,檢視累加器的內容至關重要。執行讀取中斷掩碼後累加器的各個位的含義如下圖所示:

中斷的掩碼狀態:累加器的低 3 位用於提供中斷的掩碼狀態。請注意,它們不用於遮蔽或取消遮蔽。遮蔽或取消遮蔽必須使用讀取中斷掩碼指令。
| 位號 | 用途 |
|---|---|
| 位 0 | 這是 RST5.5 掩碼 (M5.5) 位。
|
| 位 1 | 這是 RST6.5 掩碼 (M6.5) 位。
|
| 位 2 | 這是 RST7.5 掩碼 (M7.5) 位。
|
中斷啟用 (IE) 狀態:累加器的位 3 在執行讀取中斷掩碼指令後提供 IE 觸發器的狀態。
如果 IE = 1,則表示中斷系統已啟用。如果在執行 RIM 指令之前執行了 EI 指令,則會出現這種情況。
如果 IE = 0,則表示中斷系統已停用。如果在執行 RIM 指令之前發生了以下情況之一,則會出現這種情況。
執行了 DI 指令
Intel 8085 已復位
Intel 8085 已進入中斷服務子程式。
讓我們在下面的表格中檢視其他狀態位:
| 位號 | 用途 |
|---|---|
| 位 4 | 這是中斷掛起 RST5.5 (IP5.5) 位。
|
| 位 5 | 這是中斷掛起 RST6.5 (IP6.5) 位。
|
| 位 6 | 這是中斷掛起 RST7.5 (IP7.5) 位。
|
8085 微處理器有一個標記為序列輸入資料的引腳。這對於序列資料通訊是必需的。微處理器可以在每個時鐘脈衝讀取 1 位資訊。因此,當執行 RIM 指令時,累加器的最高位接收 8085 的 SID 引腳上的資料。鑑於此,執行 RIM 指令後,累加器位 7 的含義如下:
| 位號 | 用途 |
|---|---|
| 位 7 | 這是 SID 位。執行 RIM 指令後,8085 的 SID 引腳上的資料將 載入到此位位置。 |
讓我們討論一下 8085 的各種中斷的詳細資訊,總結如下表所示。
| 引腳 | 優先順序 | 中斷服務子程式地址 | 靈敏度 | 條件 |
|---|---|---|---|---|
| TRAP | 最高 | 0024H | 上升沿和高電平 | 無條件 |
| RST7.5 | 第二 | 003CH | 上升沿 | 未遮蔽且 EI |
| RST6.5 | 第三 | 0034H | 高電平 | 未遮蔽且 EI |
| RST5.5 | 第四 | 002CH | 高電平 | 未遮蔽且 EI |
| INTR | 最低 | 由外部裝置提供 | 高電平 | EI |
讓我們考慮以下程式段:
| 地址 | 十六進位制程式碼 | 助記符 | 註釋 |
|---|---|---|---|
| 2000 | 3E | MVI A, 19H | A ← 19H =0001 1001,這意味著 SOD=0,SDE=0,R7.5=1,MSE=1,M5.5=1 |
| 2001 | 19 | 累加器值 19H | |
| 2002 | 30 | SIM | 設定中斷掩碼 |
| 2003 | 20 | RIM | 讀取中斷掩碼。如果累加器獲得值 01H,則表示 SID=0,I7.5=0,I6.5=0,I5.5=0,IE=0,M7.5=0,M6.5=0 和 M5.5=1 |
此指令讀取中斷掩碼執行的時序圖如下所示:

**總結** − 所以這個讀取中斷掩碼指令需要 1 個位元組、1 個機器週期(操作碼獲取)和 4 個 T 狀態來執行,如時序圖所示。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP