DJ5 指令類型_第1頁
DJ5 指令類型_第2頁
DJ5 指令類型_第3頁
DJ5 指令類型_第4頁
DJ5 指令類型_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2.3 指令類型指令類型2.3.1 傳送指令傳送指令源地址源地址 目的地址目的地址數據數據傳送指令的指令特點傳送指令的指令特點:功能功能1. 規定傳送范圍規定傳送范圍用戶編程能夠指定的用戶編程能夠指定的源端源端和和目的端目的端:寄存器寄存器 (R) 存儲器存儲器(M) RRRMMM范圍、單位、尋址方式范圍、單位、尋址方式例例. Intel 80X86: R M, R RIBM370:R M, R R, M MR MDJS-100系列系列:傳送范圍的指定涉及多方面因素傳送范圍的指定涉及多方面因素:復雜性、速度、價格等復雜性、速度、價格等R MR R盡可能讓數據在盡可能讓數據在R之間傳送之間傳送,

2、速度快速度快, 復雜性增加復雜性增加M M速度慢速度慢, 利于編程利于編程介于前兩者之間介于前兩者之間例例. 80X86的串傳送指令的串傳送指令: REP MOVSWMOV AX, BX (16位位)MOV AL, BL (8位位)MOV EAX, EBX (32位位)(字傳送字傳送, SI DI, 傳送次數由計數器傳送次數由計數器CX控制控制)2. 指明傳送單位指明傳送單位例例. VAX-11(用操作碼說明用操作碼說明):MOVB8位位MOVL32位位MOVW16位位Intel 80X86:(用地址量說明用地址量說明)3. 設置尋址方式設置尋址方式 不同機器各不相同不同機器各不相同, 但一般

3、都具有基本的但一般都具有基本的尋址方式尋址方式 尋址方式越多尋址方式越多, 編程越方便,但機器的實編程越方便,但機器的實現越復雜現越復雜針對數據傳送指令設置的尋址方式針對數據傳送指令設置的尋址方式:2.3.2 輸入輸入/輸出指令輸出指令1. I/O指令的功能擴展指令的功能擴展如何用通用如何用通用I/O指令實現對各種不同設備的控制指令實現對各種不同設備的控制? (1) I/O指令中留有擴展余地指令中留有擴展余地指令中某些字段編碼事先不定義指令中某些字段編碼事先不定義, 需要時再約需要時再約定其含義。定其含義。 各種信息各種信息主機主機 外設外設 比如比如: 設置設置I/O指令時需考慮指令時需考慮

4、:操作碼操作碼 操作數操作數1 操作數操作數2三位空閑三位空閑, 接口設計時定義接口設計時定義 譯碼器譯碼器三位編碼三位編碼, 定義定義8種功能種功能應用范圍應用范圍: 用于外設種類、數量不多的場合。用于外設種類、數量不多的場合。(2) I/O接口中設置接口中設置控制控制/狀態寄存器狀態寄存器 主機用輸出指令或傳送指令將具體設備的控主機用輸出指令或傳送指令將具體設備的控 制命令按約定的代碼格式送往接口中的制命令按約定的代碼格式送往接口中的控制控制寄存器寄存器, 向外設發出命令。向外設發出命令。 外設的狀態信息也以某種格式放在接口的狀外設的狀態信息也以某種格式放在接口的狀態寄存器中態寄存器中,

5、主機用輸入指令或傳送指令從主機用輸入指令或傳送指令從狀態寄存器狀態寄存器中取出有關信息進行查詢中取出有關信息進行查詢、分析。分析。如何設置控制如何設置控制/ /狀態寄存器是接口設計的關鍵狀態寄存器是接口設計的關鍵。例例:處理器處理器 I/O 設備設備 總線總線可編程接可編程接口芯片口芯片 控制寄存器控制寄存器 狀態寄存器狀態寄存器控制寄存器控制寄存器 .C7 C6 C5 .C0 狀態寄存器狀態寄存器 .D7 D6 D5 .D0 OUT n1, ALIN AL, n22. 主機對外設的尋址方式主機對外設的尋址方式I/O端口端口尋找尋找外設外設或或I/O接口中的寄存器接口中的寄存器的方式。的方式。

6、如何為如何為I/O端口分配地址?端口分配地址? I/O設備設備 I/O接口邏輯接口邏輯 寄存器寄存器 譯譯碼碼器器端口地址端口地址數據數據端口地址與存儲器地址的關系?端口地址與存儲器地址的關系?(1) 單獨編址單獨編址 編址到設備編址到設備: 編址到寄存器編址到寄存器(端口獨立編址端口獨立編址) : 端口地址的位數一般遠少于存儲單元地址的位數端口地址的位數一般遠少于存儲單元地址的位數 I/O地址空間不占主存空間地址空間不占主存空間 因此因此I/O地址可與內存地址重疊地址可與內存地址重疊每個設備有各自的設備編碼每個設備有各自的設備編碼; I/O指令給出設指令給出設備碼備碼, 并指明訪問該設備的哪

7、個寄存器。并指明訪問該設備的哪個寄存器。為每個寄存器為每個寄存器(I/O端口端口)分配獨立的端口地分配獨立的端口地 址址, I/O指令中給出端口地址。指令中給出端口地址。單獨編址的特點單獨編址的特點:例例: 端口獨立編址端口獨立編址 (地址重疊地址重疊)存儲空間存儲空間: 容量容量64K, 編址編址0000H FFFFH端口編址端口編址: 00H FFH (假設都已分配給不同端口假設都已分配給不同端口)處理器處理器 地址總線地址總線外設端口外設端口寄存器寄存器存儲器存儲器數據總線數據總線RD 讀存儲單元讀存儲單元FF30H, 處理器輸出地址處理器輸出地址 ,存儲器從存儲器從16位地址總線上接收

8、位地址總線上接收FF30H, 并接收讀命令并接收讀命令RD 由于采用總線結構由于采用總線結構, 外設端口也將從地址總線外設端口也將從地址總線的低的低8位收到處理器發出地址的低位收到處理器發出地址的低8位位(30H), 并并收到讀命令收到讀命令 。RD 如果不加控制如果不加控制, 存儲單元存儲單元FF30H和地址為和地址為30H的的端口的數據被同時讀出到數據總線端口的數據被同時讀出到數據總線, 導致會亂。導致會亂。處理器處理器 地址總線地址總線外設端口外設端口寄存器寄存器存儲器存儲器數據總線數據總線RD關鍵原因關鍵原因: 地址碼本身不能區分地址碼本身不能區分存儲單元存儲單元或或端口端口。(2)

9、統一編址統一編址I/O端口占據部分處理器提供的全部尋址空端口占據部分處理器提供的全部尋址空間的一部分。可將存儲空間的低端分配給主間的一部分。可將存儲空間的低端分配給主存單元存單元, 高端分配給高端分配給I/O端口端口, 以示區分以示區分。 編址到寄存器編址到寄存器:為每個寄存器為每個寄存器(I/O端口端口)分配總線地址分配總線地址;訪問外設時訪問外設時, 指令中給出總線地址。指令中給出總線地址。 (即即 與存儲器單元統一編址與存儲器單元統一編址)因此因此, 地址本身能夠區分出地址本身能夠區分出存儲單元地址存儲單元地址還是還是I/O端口地址端口地址, 無需其它控制無需其它控制, 不會出現存儲單不

10、會出現存儲單元和端口的讀寫發生會亂。元和端口的讀寫發生會亂。 端口獨立編址端口獨立編址: 用專門的用專門的/輸入輸出指令來完成輸入輸出指令來完成端口的讀寫操作端口的讀寫操作 統一編址統一編址:無需專門輸入無需專門輸入/輸出指令輸出指令, 采用一般數采用一般數據傳送指令即可端口的讀寫操作據傳送指令即可端口的讀寫操作比如比如: 輸入指令輸入指令 IN Ri , n 輸出指令輸出指令 OUT n , Ri比如比如: 某外設接口有某外設接口有3各寄存器各寄存器, 分別為分別為: 數據寄存器數據寄存器 分配地址分配地址 FF00 命令字寄存器命令字寄存器 分配地址分配地址 FF01 狀態寄存器狀態寄存器

11、 分配地址分配地址 FF02 CPU內部有寄存器內部有寄存器R0 、R1 、R2 、 R3數據寄存器數據寄存器 分配地址分配地址 FF00命令字寄存器命令字寄存器 分配地址分配地址 FF01狀態字寄存器狀態字寄存器 分配地址分配地址 FF02則指令則指令: MOV FF01 , R0 R0的內容輸出到命令字寄存器的內容輸出到命令字寄存器MOV R1 , FF02 狀態字輸入狀態字輸入CPU內內R1MOV R2 , FF00 數據寄存器內容輸入數據寄存器內容輸入CPU內內R2MOV FF00 , R3 R3的內容輸出到數據寄存器的內容輸出到數據寄存器CPU設置標志來區分訪問對象設置標志來區分訪問

12、對象, 如如Intel80 86= 0 訪問訪問I/O端口端口M/IO 對于端口獨立編址:對于端口獨立編址:= 1 訪問存儲器訪問存儲器電路如何實現電路如何實現(體現體現) 兩種不同的編址方式?兩種不同的編址方式? 對于統一編址:對于統一編址:譯碼電路對地址碼的譯碼區分出需要讀寫譯碼電路對地址碼的譯碼區分出需要讀寫的單元或端口。的單元或端口。當執行當執行I/O所指令時所指令時, 該引腳為該引腳為0 ;(引腳引腳)當訪問存儲器時當訪問存儲器時(執行任何需訪存的指令、執行任何需訪存的指令、取指令等取指令等), 該引腳為該引腳為1 ;(引腳引腳 的利用的利用):M/IO電路原理電路原理存儲存儲芯片芯

13、片 I/O端口端口M地址地址譯碼器譯碼器I/O地址地址譯碼器譯碼器M/IOENEN地址總線地址總線CSCS 端口的類型以及選中的方式端口的類型以及選中的方式:端口的常見類型有端口的常見類型有: 寄存器寄存器(常作輸出端口常作輸出端口) 帶三態輸出的寄存器帶三態輸出的寄存器 (常作輸入端口常作輸入端口) 觸發器觸發器輸出端口輸出端口端口選中方式端口選中方式: 接口電路接口電路 寄存器寄存器數據總線數據總線 譯碼器譯碼器地址總線地址總線CLK(端口地址端口地址)到外設到外設打入脈沖打入脈沖 接口電路接口電路 數據總線的某一位數據總線的某一位 譯碼器譯碼器地址總線地址總線CLK(端口地址端口地址)D

14、CQQ觸發器觸發器輸入端口輸入端口 接口電路接口電路 三態輸出寄存器三態輸出寄存器數據總線數據總線 譯碼器譯碼器地址總線地址總線EN(端口地址端口地址)自外設自外設開門信號開門信號3. I/O指令設置方式指令設置方式(1)(1)設置專用設置專用I/O指令指令 顯式顯式I/O指令指令針對端口獨立編址針對端口獨立編址, 用用I/O指令訪問指令訪問I/O端口。指端口。指令中說明輸入令中說明輸入/輸出操作輸出操作, 給出給出設備碼或端口地址。設備碼或端口地址。例例1. DJS-100系列系列I/O指令設置指令設置 輸入輸入: DIB C 2, 設備碼設備碼; 接口內寄存器接口內寄存器主機內寄存器主機內

15、寄存器AC2并清除并清除B (C表示清除表示清除) 3 2 3 2 6 特征位特征位 累加器號累加器號 操作碼操作碼 控制功能控制功能 設備碼設備碼 完成完成:(B)例例2. Intel 80X86 I/O指令設置指令設置端口地址端口地址 輸入輸入: IN AL, n ;(n) AL(端口直接尋址端口直接尋址)間接端口地址間接端口地址IN AL, DX ;OUT n, AL ; (AL) n(端口直接尋址端口直接尋址)OUT DX, AL ; (AL) (DX)(端口間接尋址端口間接尋址) 輸出輸出: (端口間接尋址端口間接尋址)(DX)AL 輸出:輸出:DOA 3, 設備碼設備碼;(AC3)

16、 A接口內寄存器接口內寄存器主機內寄存器主機內寄存器(2) 用用傳送指令傳送指令實現實現I/O操作操作 隱式隱式I/O指令指令 例例. 某機某機I/O接口中設置接口中設置 控制控制/狀態寄存器狀態寄存器CSR, 其總線地址為其總線地址為177550 (8進制進制) 數據緩沖寄存器數據緩沖寄存器DBR, 其總線地址為其總線地址為177552 (8進制進制)針對統一編址針對統一編址, 用傳送指令訪問用傳送指令訪問I/O端口。端口。不設專用不設專用I/O指令。指令。主機調用輸入機主機調用輸入機:控制控制/狀態字格式狀態字格式:出錯出錯 故障故障 忙忙 完成完成 允許中斷允許中斷 維護維護 校驗校驗

17、啟動啟動15 14 12 7 6 2 1 0啟動啟動:177550傳送指令傳送指令控制字控制字(啟動位為啟動位為1)主機主機測試測試: 主機主機傳送指令傳送指令狀態字狀態字177550取數取數:177552傳送指令傳送指令數據數據主機主機(3) 通過通過I/O處理機進行處理機進行I/O操作操作兩級兩級I/O指令指令 CPU執行簡單執行簡單I/O指令指令(啟動、停止、查詢、清除啟動、停止、查詢、清除) I/O處理機執行處理機執行I/O操作指令操作指令(輸入、輸出輸入、輸出)主機主機 I/O 設備設備 I/O處理機處理機 I/O 設備設備.設置時需考慮設置時需考慮操作數類型操作數類型、符號符號、進

18、位制進位制等等;運算結束后設置相應運算結束后設置相應狀態標志狀態標志。1. 算術運算指令算術運算指令2.3.3 算術邏輯運算指令算術邏輯運算指令2. 邏輯運算指令邏輯運算指令實現對數據的實現對數據的設置、測試、清除、修改設置、測試、清除、修改等等與與或或異或異或 OR AL, 60H將將AL的的D6、D5位置位置1 TEST AL, 83H測試測試AL的的D7、D1、D0位是否為位是否為0XOR AL, 0AH將將AL的的D3、D1位變反位變反用于控制程序指令的流程。用于控制程序指令的流程。1. 轉移指令轉移指令2.3.4 程序控制指令程序控制指令2. 轉子指令與返回指令轉子指令與返回指令轉子轉子指令指令: 操作碼操作碼 子程序入口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論