因為機器語言是二進位代碼表示的電腦能直接辨識和執行的一種機器指令的集合;這種指令集被稱為機器碼,是電腦的CPU可直接解讀的數據,是計算機的設計者透過電腦的硬體結構賦予電腦的操作功能。
本教學操作環境:windows10系統、DELL G3電腦。
電腦能直接辨識和執行的語言是機器語言。機器語言是用二進位代碼表示的電腦能直接辨識和執行的一種機器指令的集合。這種指令集,稱為機器碼(machine code),是電腦的CPU可直接解讀的資料。
機器語言是電腦的設計者透過電腦的硬體結構賦予電腦的操作功能。機器語言具有靈活、直接執行和速度快等特點。不同型號的計算機其機器語言是不相通的,按著一種計算機的機器指令編制的程序,不能在另一種計算機上執行。
使用機器語言編寫程序,程式設計人員要先熟記所用電腦的全部指令碼和程式碼的涵義。進行編程式時,程式設計師需要自己處理每個指令和每一個資料的儲存分配和輸入輸出,也得記住程式設計過程中每步驟所使用的工作單元處在何種狀態。
這是一件十分繁瑣的工作,編寫程式花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編出的程式全是些0和1的指令碼,直覺性差,還容易出錯。現在,除了電腦生產廠商的專業人員外,絕大多數程式設計師已經不再去學習機器語言了。
一條指令就是機器語言的一個語句,它是一組有意義的二進位程式碼。各計算機公司設計生產的計算機,其指令的數量與功能、指令格式、尋址方式、資料格式是差別的。從電腦的發展過程可以看到,由於構成電腦的基本硬體發展迅速,電腦的更新換代很快,這就存在軟體如何跟上硬體的問題。
一台新機器推出交付使用時,只有少量系統軟體(如操作系統等)可提交用戶,大量軟體是不斷充實的,尤其是應用程序,有相當一部分是用戶在使用機器時不斷產生的。為了緩解新機器的推出致使原有應用程式無法繼續使用的問題,各個電腦公司生產的同一系列的電腦時,儘管其硬體實現方法可以不同,但指令系統、資料格式、I/O系統等保持相同,因而軟體完全相容。
擴充知識:機器語言的指令格式
機器語言指令是一種二元程式碼,由操作碼和操作數兩部分組成。操作碼規定了指令的操作,是指令中的關鍵字,不能缺省。操作數表示該指令的操作對象。電腦的指令格式與機器的字長、記憶體的容量及指令的功能都有很大的關係。從便於程式設計、增加基本操作並行性、提升指令功能的角度來看,指令中應包含多種資訊。但在有些指令中,由於部分資訊可能無用,這將浪費指令所佔的儲存空間,並增加了訪問次數,也許反而會影響速度。因此,如何合理、科學地設計指令格式,使指令既能給出足夠的信息,又使其長度盡可能地與機器的字長相匹配,以節省存儲空間,縮短取值時間,提高機器的性能,這是指令格式設計的重要問題。
計算機是透過執行指令來處理各種資料的。為了指出資料的來源、操作結果的去向及所執行的操作,一條指令必須包含下列資訊:
(1)操作碼。它具體說明了操作的性質及功能。一台電腦可能有數十條至幾百條指令,每一條指令都有一個對應的操作碼,電腦透過辨識該操作碼來完成不同的操作。
(2)操作數的位址。 CPU透過該位址就可以取得所需的操作數。
(3)操作結果的儲存位址。將操作數的處理所產生的結果保存在該位址中,以便再次使用。
(4)下條指令的位址。執行程序時,大多數指令依序從主記憶體取出執行,只有在遇到轉移指令時,程式的執行順序才會改變。為了壓縮指令的長度,可以用一個程式計數器(ProgramCounter,PC)來存放指令位址。每執行一條指令,PC的指令位址就會自動 1(設指令只佔一個主記憶體),指出將要執行的下一指令的位址。當遇到執行轉移指令時,則用轉移位址修改PC的內容。由於使用了PC,指令中就不必明顯地給出下一條將要執行指令的位址。
一條指令其實包含兩種訊息即操作碼和位址碼。操作碼(OperationCode,OP)用來表示該指令所要完成的操作(如加、減、乘、除、資料傳送等),其長度取決於指令系統中的指令條數。位址碼用來描述該指令的操作對象,它或直接給出操作數,或指出操作數的記憶體位址或暫存器位址(即暫存器名稱)。
指令包含操作碼域和位址域兩部分。根據位址域所涉及的位址數量,常見的指令格式有以下幾種。
三位址指令:一般位址域中A1、A2分別決定第一、第二運算元位址,A3決定結果位址。下一指令的位址通常由程式計數器依序給出。
二位址指令:位址域中A1決定第一運算元位址,A2同時決定第二運算元位址和結果位址。
單一位址指令:位址域中A 決定第一運算元位址。固定使用某個暫存器存放第二操作數和操作結果。因而在指令中隱含了它們的位址。
零位址指令:在堆疊型計算機中,運算元一般存放在下推堆疊頂的兩個單元中,結果又放入棧頂,位址均被隱含,因而大多數指令只有操作碼而沒有位址域。
可變位址數指令:位址域所涉及的位址的數量會隨操作定義而改變。如有的計算機的指令中的位址數可少至 0個,多至6個。
更多相關知識,請造訪常見問題欄位!
以上是為什麼說機器語言是電腦可以直接辨識和執行的語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!