8085微處理器中的IN a8指令


在8085指令集中,**IN**是一個助記符,代表將輸入埠的內容輸入到累加器中。輸入埠的8位地址在指令中表示為**a8**。它在記憶體中佔用2個位元組。第一個位元組指定操作碼,下一個位元組提供8位的輸入埠地址。

助記符,運算元
操作碼(十六進位制)
位元組數
輸入埠地址
DB
2


IN F0H是這種型別的示例指令。該指令執行的結果如下例所示。


執行前
執行後
(A)
任意值
ABH
輸入埠F0H
ABH
ABH


IN指令是唯一用於將輸入埠內容讀取到累加器的指令。連線地址為F0H的輸入埠的可能的晶片選擇電路如下所示。

輸入埠F0H的晶片選擇電路

這裡,由於埠地址為F0H,因此A7到A0的位應該具有位模式

A7 A6 A5 A4 A3 A2 A1 A0 =1 1 1 1  0 0 0 0, with RD* = 0, and IO/M* = 1

所有這些位將透過一個與非門產生輸出邏輯1作為晶片選擇(CS),因此輸入埠晶片被選中。因此,當8085發出地址F0H、IO/M*為1、RD*為0時,晶片做出響應。換句話說,我們認為它具有輸入埠號F0H。

請注意,可以有一個地址為F0H的輸出埠和一個地址為F0H的輸入埠。當8085發出地址EFH和IO/M*為1時,只有一個根據RD*和WR*訊號的狀態值被選中。因此,可以總共有256個輸入埠和256個輸出埠。


地址
十六進位制程式碼
助記符
註釋
2000
DB
IN F0H
來自埠地址F0H的內容將被寫回累加器
2001
F0

F0H作為埠地址


針對此指令**IN F0H**執行的時序圖如下所示:

**總結** − 因此,此指令**OUT**需要2個位元組、3個機器週期(操作碼提取、記憶體讀取、I/O讀取)和10個T狀態才能執行,如時序圖所示。

更新於:2020年6月27日

3K+瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.