8085 中的 EI 和 DI 指令
8085 有五個內部中斷訊號,對應於五個外部中斷引腳。並且這些中斷僅在內部中斷訊號被啟用時才被識別,8085 會被打斷,前提是同時沒有更高級別的內部中斷訊號處於活動狀態。8085 在指令最後一個機器週期倒數第二個時鐘週期檢查所有這些內部中斷訊號。
在 8085 中,有一個稱為 IE 觸發器的觸發器。這裡 IE 代表中斷使能。只要此觸發器復位到 0 狀態,8085 中斷系統就會被停用。也就是說,即使外部中斷引腳被啟用,相應的內部中斷訊號也不會被啟用。這可以在下圖中觀察到,該圖提供了 8085 中斷結構的內部架構。

從圖中可以清楚地看出,此觸發器狀態與對應於 TRAP 的內部中斷訊號無關。TRAP 是最高優先順序、不可遮蔽的中斷。這意味著,只要外部 TRAP 引腳被啟用,相應的內部中斷訊號就會始終被啟用。
IE 觸發器透過以下三種情況復位到 0 狀態:
執行 DI 指令;
識別中斷請求
重置 8085。
DI 指令代表“停用中斷”。它是一條 1 位元組指令。執行此指令時,IE 觸發器將被複位。這將停用 8085 中斷系統,除了 TRAP 引腳。
當 8085 識別到中斷時,它會跳轉到 ISS(中斷服務子程式)。識別是指內部中斷訊號被啟用,並且更高級別的內部中斷訊號未處於活動狀態。在 ISS 中,8085 不希望再次被打斷。這就是為什麼當 8085 識別到中斷時,它會將自身置於 DI 狀態的原因。但是,TRAP 仍然可以中斷 ISS。因此,當控制權轉移到 ISS 時,中斷系統會自動停用。因此,程式設計師無需在 ISS 的開頭編寫 DI 指令。無論程式設計師是否在 ISS 的開頭編寫 DI 指令,中斷系統都保持停用狀態,除了 TRAP。
| 助記符,運算元 | 操作碼(十六進位制) | 位元組 |
|---|---|---|
| EI | FB | 1 |
| DI | F3 | 1 |
讓我們考慮以下程式段:
| 地址 | 十六進位制程式碼 | 助記符 | 註釋 |
|---|---|---|---|
| 2000 | FB | EI | 啟用中斷將使 EI = 1 |
| 2001 | F3 | DI | 停用中斷將使 EI = 0 |
針對此指令 **EI** 執行的時序圖如下:

**總結** - 因此,此指令 EI 需要 1 位元組、1 個機器週期(操作碼獲取)和 4 個 T 狀態才能執行,如時序圖所示。
針對此指令 **DI** 執行的時序圖如下:

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