基本機器語言

基本機器語言

機器語言(machine language)是一種指令集的體系。這種指令集,稱機器碼(machine code),是電腦的CPU可直接解讀的數據。

概述

計算機能夠識別並執行的二進制代碼固定在計算機硬體中。每種處理器都有自己專用的機器指令集合。CPU的電子器件能夠識別並執行這些指令。由於指令數量有限,所以在設計處理器時,設計師首先列出所有指令,給每個指令分配一個二進制代碼,用來表示它們,然後設計硬體來完成該指令的功能。起初,人們只能直接用這些二進制代碼編寫程式控制計算機,這些二進制代碼稱為機器語言。計算機能夠執行用機器語言編寫的程式。

使用機器語言的程式設計師必須記住每組二進制數對應的是什麼指令。

每條機器語言指令只能執行一個非常小的任務。在機器語言中,處理過程中每個微小步驟都必須有明確的編碼。即使是求兩個數的和,也需要用3條二進制指令來編寫。

例如,在8086/8088兼容機上,用機器語言完成求5+6的程式代碼如下。

10110000 00000101;將5放進累加器acc中

00101100 00000110;累加器的值與6相加,結果仍然在累加器中

11110100;停機結束

將它輸入以8086微處理器為CPU的計算機中,就能直接執行它。機器語言是唯一不必經過翻譯而能直接識別的語言,它與具體的計算機有關。不同的計算機識別的機器語言不同,程式設計師不僅要非常熟悉硬體的組成及其指令系統,還必須熟記計算機的指令代碼。

用機器語言編寫的程式難以閱讀和理解,程式設計師必須記住複雜的指令系統,書寫、辨認冗長的二進制代碼,很難在程式編寫方法和算法上下功夫,這極大地限制了程式的質量和套用範圍。而且每個程式只能在特定類型的計算機上運行,要想在其他計算機上運行,必須重新編寫,造成了重複工作。

特點

機器語言有如下特點,

1.機器語言與計算機硬體結構密切相關

不同的汁算機硬體結構有著不同的機器語言,在以CPU為核心的計算機硬體結構中,不同CPU有著不同的機器語言,機器語言與計算機硬體結構密切相關。

2.二進制數表示

機器語言中,指令操作碼、存放運算元的存儲單元的地址、運算元等都用二進制數表示,CPU將以程式計數器的值為地址訪問存儲器瀆到的內容作為指令,以指令中給出的運算元地址。或以地址暫存器B的值為地址訪問存儲器瀆到的內容作為運算元。由CPU負責區分指令和運算元,表示指令和運算元的二進制數本身是無法區分二者的。

3.設計程式時需同步安排指令和運算元在存儲器中的存放位置

由於運算指令需要指定存放另一個運算元的存儲單元的地址,控制指令需要指定不順序執行指令的情況下,存放另一段程式或循環體中第一條指令的存儲單元的地址,因此,設計程式過程也是安排指令和運算元在存儲器中存放位置的過程。

4.每一條指令只能完成簡單運算功能

機器語言的每一條指令只能完成簡單的運算功能。用機器語言編寫完成複雜運算過程的程式是比較困難的,一個完成只包含四則運算表達式的運算過程的機器語言程式都是比較複雜的。可以嘗試用模型機機器指令編寫完成表達式:7*8+(21—1 7)*5一(7+21)÷6運算過程的機器語言程式。

局限性

機器語言的局限性很明顯:機器指令是用二進制編碼的,不容易記憶和閱讀。為了克服這種局限性,人們引入一種替代方法:用助記符來代替操作碼,用符號代替地址。助記符是縮寫的英文字元,與操作碼的功能相對應;表示地址的符號即符號地址,由用戶根據需要來定。這種由助記符和符號組成的指令集合稱為彙編語言。

彙編語言程式必須經過翻譯,轉變為機器語言程式,才能被計算機執行。人們把完成這一翻譯任務的程式稱為彙編程式,它是系統軟體,一般是和計算機設備一起配置的。把利用彙編程式將彙編語言程式翻譯為機器語言程式的過程稱為彙編。把彙編語言程式稱原始碼,把翻譯後的機器語言程式稱為目標代碼。

機器語言的另一個局限性是對計算機系統結構的依賴,在一種機器上開發的機器語言程式在另一種機器上一般是不能執行的。彙編語言克服了這個局限性,因為彙編程式是和計算機設備一起配置的系統軟體,它可以把彙編語言程式翻譯為相應的機器語言程式。

機器語言還有一個局限性嗎,機器指令與硬體結構相聯,它對數據的操作很簡單,等同於最簡單的機械動作,這使得對一個像求和一樣的簡單汁算,都需要多條機器指令才能完成。隨著算法越來越複雜,用這種簡單的機器指令來描述算法肯定越來越困難,而且閱讀、修改和維護也越來越不容易。這個矛盾在彙編語言中依然存在,因為彙編指令不過是符號化的機器指令而已。要有效地解決這種矛盾,就要超越計算機硬體結構,建立面向算法處理對象的程式語言。於是走進高級語言。

相關詞條

熱門詞條

聯絡我們