《計算機組成原理》
3.2.4指令功能和型別
按指令的功能分類,現在的大部分微處理器將指令分為:傳輸類指令、訪存指令、I/O指令、算術運算指令、邏輯運算指令、程式控制類指令、處理機控制類指令等,
1.傳輸類指令
傳輸類指令是計算機中最基本的指令,用于實作資料傳輸操作,從編程的角度,傳輸類指令是使用得最多的指令,從掌握計算機作業機制的角度,計算機硬體的操作基本上都可以歸結為資訊的傳輸,
計算機的指令系統中通常將傳輸類指令分為如下3種:
1.傳輸指令,實作CPU中各暫存器之間的資料傳輸,如R0到R1,
2.訪存指令,實作對存盤器的讀出或寫入,如將資料從主存盤器調至CPU的暫存器中,以后就可以在CPU中進行運算處理,
3.I/O操作指令,將有關I/O介面中暫存器的內容輸入到主機(CPU的暫存器中或主存盤器中)或將資料從主機輸出到I/O介面中,
有的計算機將這3種合并為一個大類,統稱為通用型資料傳輸指令,根據尋址方式區分它是在CPU內傳輸還是訪存,
在具體設定傳輸指令時,一般當對三方面做出約定或說明,
1.傳輸范圍,指令允許資料在什么范圍內傳輸,資料可能來源于目的地可能是CPU暫存器、主存盤器或I/O介面暫存器,
2.傳輸單位,資料可以按位元組、字、雙字或陣列為單位進行傳輸,因此傳輸指令中應明資料傳輸單位,
3.設定尋址方式,有的計算機為各種尋址方式分類編號,如0型、1型 ,,n型等,在指令中設定專門的尋址方式編碼欄位,說明是何種尋址方式,
2.訪存指令
許多機器設定了專門的訪存指令,用于主存盤器于CPU暫存器之間資料傳輸類,訪存指令分為讀、寫兩類,
1.加載指令(讀存盤器),從主存盤器某個單元將資料讀出,送入CPU的某個暫存器,常被稱為加載(LOAD),加載指令又可分為按位元組、按字等幾條指令,
2.存盤指令(寫入存盤器),將資料寫入某個主存盤器單元,稱為存盤(STORE),也可被分為按位元組、按字等,
3.彈出(TOP),從堆疊堆疊頂彈出資料,可視為讀存盤器的一個特例,
4.壓堆疊(PUSH),將資料壓入堆疊堆疊頂,可視為存盤指令的一個特例,
3.輸入/輸出(I/O)指令
I/O指令實作主機和各外圍設備之間的資訊傳輸,輸入和輸出都以主機為參考,將資訊送入主機,稱為輸入;將資訊送至外圍設備,稱為輸出,主機發送者/接收者可以是CPU的中的暫存器,也可以是主存單元,外圍設備通過I/O介面與系統總線相連,實作與主機的資訊互動,資料的發送/接收者是I/O介面中的暫存器,主機對外圍設備的訪問就是對有關介面暫存器的訪問,
I/O指令所傳輸的指令資訊大致可分為:資料、命令和狀態資訊,
、I/O設備的編址方法,
1.I/O設備的編址方法
外圍設備的編址方式總體上可以分為如下兩大類,
(1)外圍設備單獨編址
為外圍設備介面中有關暫存器單獨分配單獨的I/O埠地址,“單獨分配”指的是獨立于主存編址系統,即外圍設備分配I/O埠地址碼可以與主存單元地址碼相同,設備和主存的地址碼是相互獨立的,
(2)與主存盤器統一編址
將總線空間劃分為兩大部分,大部分空間留給主存,小部分留給I/O介面暫存器(即I/O埠)使用,
2.I/O指令的設定方法
考慮到外圍設備有兩種不同的編址方式,因此也要兩類I/O指令設定與之分別對應,
(1)設定專用的I/O指令
大多數計算機的指令系統中設定了專門的I/O指令,以支持對外圍設備(I/O介面暫存器)單獨編址,這類指令是I/O操作專用的且明確存在(非借用記憶體操作指令完成I/O操作)的,故又為顯示I/O指令,相應,I/O指令的操作碼明確規定某種I/O操作,在地址部分分別給出CPU暫存器號及I/O埠地址,
采用專用I/O指令啟用外圍設備的方法有兩種:一種是有操作碼給出啟動指令,另一種是用輸出指令,從CPU暫存器向I/O介面的控制暫存器送出命令字,其中包含啟動命令和其他命令,、
(2)采用通用資料傳輸指令實作I/O操作
有些計算機采用通用的資料傳輸指令實作I/O操作,相應地將外圍設備(I/O介面暫存器)與主存單元統一編址,
這類指令的I/O等價功能是借用記憶體傳輸指令實作的,所以被稱為隱式I/O指令,
通用傳輸指令中并不直接包含啟動外圍設備的啟動命令,它們啟動外圍設備的方法是通過資料總線向介面輸出命令字,包含啟動位,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/340889.html
標籤:其他
上一篇:IntelliJ中的JavaFXMaven專案。僅IntelliJ中缺少JavaFX運行時組件。JAR通過mvn包執行沒有問題
