概述
計算機指令就是指揮機器工作的指示和命令,程式就是一系列按一定順序排列的指令,執行程式的過程就是計算機的工作過程。通常一條指令包括兩方面的內容:操作碼和運算元,操作碼決定要完成的操作,運算元指參加運算的數據及其所在的單元地址。在計算機中,操作要求和運算元地址都由二進制數碼錶示,分別稱作操作碼和地址碼,整條指令以二進制編碼的形式存放在存儲器中。
多地址指令是指指令有3個以上的運算元地址,指令碼長。在某些性能較好的大、中型機及高檔小型機中採用,往往設定一下功能很強的,用於處理成批數據的指令,如字元串處理指令、向量、矩陣運算指令等。為了描述一批數據,指令中需要多個地址來指出數據存放的首地址、長度和下表等信息。
指令系統
指令系統是計算機硬體的語言系統,也叫機器語言,指機器所具有的全部指令的集合,它是軟體和硬體的主要界面,反映了計算機所擁有的基本功能。它描述了計算機內全部的控制信息和“邏輯判斷”能力。不同計算機的指令系統包含的指令種類和數目也不同。一般均包含算術運算型、邏輯運算型、數據傳送型、判定和控制型、移位操作型、位(位串)操作型、輸入和輸出型等指令。指令系統是表征一台計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬體結構,而且也直接影響到系統軟體,影響到機器的適用範圍。從系統結構的角度看,它是系統程式設計師看到的計算機的主要屬性。因此指令系統表征了計算機的基本功能決定了機器所要求的能力,也決定了指令的格式和機器的結構。設計指令系統就是要選擇計算機系統中的一些基本操作( 包括作業系統和高級語言中的) 應由硬體實現還是由軟體實現,選擇某些複雜操作是由一條專用的指令實現, 還是由一串基本指令實現, 然後具體確定指令系統的指令格式、類型、操作以及對運算元的訪問方式。
性能要求
指令系統的性能決定了計算機的基本功能,它的設計直接關係到計算機的硬體結構和用戶的需要。一個完善的指令系統應滿足如下四方面的要求:
完備性
指用彙編語言編寫各種程式時,指令系統直接提供的指令足夠使用,而不必用軟體來實現。完備性要求指令系統豐富、功能齊全、使用方便。
有效性
是指利用該指令系統所編寫的程式能夠高效率地運行。高效率主要表現在程式占據存儲空間小、執行速度快。
規整性
包括指令系統的對稱性、勻齊性、指令格式和數據格式的一致性。對稱性是指:在指令系統中所有的暫存器和存儲器單元都可同等對待,所有的指令都可使用各種定址方式;勻齊性是指:一種操作性質的指令可以支持各種數據類型;指令格式和數據格式的一致性是指:指令長度和數據長度有一定的關係,以方便處理和存取。
兼容性
至少要能做到“向上兼容”,即低檔機上運行的軟體可以在高檔機上運行。
定址方式
根據指令內容確定運算元地址的過程稱為定址。完善的定址方式可為用戶組織和使用數據提供方便。
①直接定址:指令地址域中表示的是運算元地址。
②間接定址:指令地址域中表示的是運算元地址的地址即指令地址碼對應的存儲單元所給出的是地址A,運算元據存放在地址A指示的主存單元內。有的計算機的指令可以多次間接定址,如A指示的主存單元記憶體放的是另一地址B,而運算元據存放在B指示的主存單元內,稱為多重間接定址。
③立即定址:指令地址域中表示的是運算元本身。
④變址定址:指令地址域中表示的是變址暫存器號i和位移值D。將指定的變址暫存器內容E與位移值D相加,其和E+D為運算元地址。許多計算機具有雙變址功能,即將兩個變址暫存器內容與位移值相加,得運算元地址。變址定址有利於數組操作和程式共用。同時,位移值長度可短於地址長度,因而指令長度可以縮短。
⑤相對定址:指令地址域中表示的是位移值D。程式計數器內容(即本條指令的地址)K與位移值D相加,得運算元地址K+D。當程式在主存儲器浮動時,相對定址能保持原有程式功能。 此外,還有自增定址、自減定址、組合定址等定址方式。定址方式可由操作碼確定,也可在地址域中設標誌,指明定址方式。
指令執行步驟
一條指令的執行過程按時間順序可分為以下幾個步驟。
① CPU發出指令地址。將指令指針暫存器(IP)的內容——指令地址,經地址匯流排送入存儲器的地址暫存器中。
② 從地址暫存器中讀取指令。將讀出的指令暫存於存儲器的數據暫存器中。
③ 將指令送往指令暫存器。將指令從數據暫存器中取出,經數據匯流排送入控制器的指令暫存器中。
④ 指令解碼。指令暫存器中的操作碼部分送指令解碼器,經解碼器分析產生相應的操作控制信號,送往各個執行部件。
⑤ 按指令操作碼執行。
⑥ 修改程式計數器的值,形成下一條要取指令的地址。若執行的是非轉移指令,即順序執行,則指令指針暫存器的內容加1,形成下一條要取指令的地址。指令指針暫存器也稱為程式計數器。
其它指令格式
①三地址指令:一般地址域中A1、A2分別確定第一、第二運算元地址,A3確定結果地址。下一條指令的地址通常由程式計數器按順序給出。
②二地址指令:地址域中A1確定第一運算元地址,A2同時確定第二運算元地址和結果地址。
③單地址指令:地址域中A 確定第一運算元地址。固定使用某個暫存器存放第二運算元和操作結果。因而在指令中隱含了它們的地址。
④零地址指令:在堆疊型計算機中,運算元一般存放在下推堆疊頂的兩個單元中,結果又放入棧頂,地址均被隱含,因而大多數指令只有操作碼而沒有地址域。
上面這些指令具有短、執行速度快,硬體實現簡單等特點,多為結構簡單、字長較短的小型機、微型機採用。