8085中的SIM指令


在8085指令集中,**SIM**代表“設定中斷掩碼”。它是一條1位元組指令,並且是一條多用途指令。**SIM**指令的主要用途是:

  • 遮蔽/取消遮蔽RST7.5、RST6.5和RST5.5

  • 將RST7.5觸發器復位為0

  • 執行資料的序列輸出


助記符,運算元
操作碼(十六進位制)
位元組
SIM
30
1

當執行SIM指令時,累加器的內容決定了要採取的操作。因此,在執行SIM指令之前,必須使用所需的值初始化累加器。下面描述了執行SIM時累加器各個位的含義和作用:



請注意,除了位5(無關位)之外,累加器的其他位決定了執行SIM指令的效果。中斷遮蔽:只有累加器的低4位用於中斷的遮蔽或取消遮蔽。


位號
用途
位3
這是掩碼設定使能(MSE)位。此位可以有兩個值:0或1。
  • 如果MSE位=0,則SIM指令不用於中斷的遮蔽或取消遮蔽。在這種情況下,累加器的低3位不包含任何有用的資訊。

  • 如果MSE位=1,則SIM指令用於中斷的遮蔽或取消遮蔽。然後低3位提供有關中斷遮蔽或取消遮蔽的資訊。

位2
這是遮蔽RST7.5(M7.5)位。此位僅在MSE位=1時才有意義。如果MSE=1且M7.5=0,則RST7.5未遮蔽。如果MSE=1且M7.5=1,則RST7.5被遮蔽。
位1
這是M6.5位,用於遮蔽/取消遮蔽RST6.5。它與M7.5位類似。
位0
這是M5.5位,用於遮蔽/取消遮蔽RST5.5。它與M7.5位類似。

需要注意的是,可以使用此SIM指令遮蔽或取消遮蔽RST7.5、RST6.5和RST5.5。TRAP和INTR不能使用SIM遮蔽或取消遮蔽。不允許遮蔽TRAP,因為它是最優先順序且不可遮蔽的中斷。INTR不需要遮蔽功能,因為它是最低優先順序的中斷。在8085復位後,RST7.5、RST6.5和RST5.5中斷將處於遮蔽狀態。

復位RST7.5觸發器:累加器的位4(R7.5)用於在執行SIM指令時將RST7.5觸發器輸出復位為0。如果R7.5=0,則SIM指令不用於復位RST7.5觸發器。因此,如果R7.5=0,則RST7.5觸發器輸出不會發生變化。如果R7.5=1,則RST7.5觸發器被清零。讓我們考慮下圖以更好地理解:



從圖中可以清楚地看出,僅當執行SIM指令時,SIM訊號才會被啟用。當累加器的位4(R7.5)=1時,R7.5訊號被啟用。因此,當累加器的位4=1且執行SIM指令時,RST7.5觸發器將其清零輸入接收邏輯1,從而被清零。或者,當8085識別RST7.5中斷或8085復位時,RST7.5觸發器被清零。

在8085微處理器中,有一個名為SOD的引腳。SOD代表序列輸出資料。由於8085是8位處理器,因此它通常針對每個時鐘脈衝傳送和接收8位資料。但有時並行通訊不適用。在這些情況下,我們可以選擇8位資料的序列通訊。這意味著針對每個時鐘脈衝,將傳輸1位資訊。這樣,傳輸8位資料需要8個時鐘脈衝。這稱為序列資料通訊。英特爾8085提供SOD(序列資料輸出)引腳和SIM指令以促進資料的序列輸出。當用戶命令8085傳送資料時,累加器的最高有效位出現在SOD引腳上。使用者透過將累加器的位6設為1並執行SIM指令來命令8085傳送累加器的最高有效位。請考慮下表:

位號
用途
位6
這是序列輸出使能(SOE)位。如果此位=0,則SIM指令不用於資料的序列輸出。在這種情況下,累加器的最高有效位不包含任何有用的資訊。如果SOE位=1,則SIM指令用於資料的序列輸出。然後最高有效位提供要傳送到8085的SOD引腳上的資料。
位7
這是序列輸出資料(SOD)位。此位僅在SOE位=1時才有意義。如果SOE=1且執行SIM指令,則SOD位出現在8085的SOD引腳上。


讓我們考慮以下程式段:

地址
十六進位制程式碼
助記符
註釋
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
設定中斷掩碼


針對此指令**SIM**執行的時序圖如下:

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

更新時間:2020年6月27日

7K+瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.