計算機語言中的彙編語言,機器語言,高級語言到底有什麼不一樣?

計算機語言中的彙編語言,機器語言,高級語言到底有什麼不一樣?

機器語言

計算機能夠直接識別並執行的,用二進制表示的,由一系列指令組成的語言就是機器語言.

機器語言由於是由0和1組成的,所以可讀性差,不易編程和不易維護.

例如:

0000 代表 加載(LOAD)

0001代表 存儲(STORE)

彙編語言(也被稱為符號語言)

由於機器語言對人來說非常的不友好,於是就誕生了彙編語言.

例如:

ADD 表示加法 MOV 表示數據傳遞

SUB 表示減法

彙編語言它是一種用於電子計算機,微處理器,微控制器或其他可編程器件的低級語言.也是利用計算機所有硬件特性並能直接控制硬件的語言.

● 它是用助記符編寫程序的語言.

● 每個微處理器,由於硬件設計和內部結構不同,就需要用不同的電平脈衝來控制使它工作,所以每個微處理器都有自己的機器指令集,也就是機器語言.

(注:每一種處理器都有自己可以識別的一整套指令,稱為指令集)

● 特定的彙編語言和特定的機器語言指令集是一一對應的,所以彙編語言的可移植性非常差,這就是彙編語言的機器相關性.

● 彙編語言的主體是彙編指令.彙編指令和機器指令的差別在於指令的表示方法上.可以理解為:彙編語言是機器語言的符號化.彙編指令是機器指便於記憶額書寫格式.

● 彙編語言要通過彙編程序轉化為二進制的機器語言才能被執行.

● 彙編語言所操作的對象不是具體的數據,而是寄存器和存儲器,也就是說它是直接和存儲器或者寄存器打交道.

● 彙編語言的執行效率比機器語言低,比高級語言高.

高級語言

雖然彙編語言比機器語言的可讀性好,但用匯編語言很難描述解決問題的方法,而且依賴機器語言,可移植性差.

C,C++,Java,Python等高級語言就是為了克服彙編語言的可移植性差,擺脫硬件底層的設計,用人的思維來編寫程序而設計的.高級語言表達方式接近人類的語言,描述問題的能力強,通用性,可讀性都很高.

● 所有的計算機語言,最終要想在計算機上運行都需要轉變為機器語言(只有0和1組成的)才能被執行.高級語言通過編譯程序(編譯器)翻譯成機器語言.彙編語言通過彙編程序(彙編器)翻譯為機器語言.

高級語言的兩種執行方式:

一 解釋方式

所謂解釋方式就是從源程序的第一條語句開始,對每條語句都先解釋(由解釋程序翻譯為計算機指令),然後馬上執行剛解釋出的這些指令,再對下一條語句做同樣的處理,直到所有語句都處理完.

解釋方式有一個特點,就是翻譯出來的計算機指令並不會存盤(不會生成目標代碼),執行完這些二進制指令就丟失了.因此,解釋型語言沒執行一次都要重新翻譯並執行,故解釋型程序的執行效率較低(如javascript,python等)

二 編譯方式

所謂編譯方式,首先通過編譯程序把整個源程序中的所有語句翻譯為彙編語言源程序,

然後再通過彙編程序把彙編語言源程序翻譯為機器語言的機器指令,形成.exe文件(可執行文件), .exe文件是可以直接運行的文件.


分享到:


相關文章: