機器語言 組合語言和高階語言之間的關係

2021-06-17 18:59:03 字數 696 閱讀 2650

看了一篇講解高階語言、組合語言和機器語言的部落格,感覺很受益,在這裡簡單總結一下。

1. 機器語言

計算機執行的二進位制命令,都是0和1表示的。

2. 組合語言

具有一定意義的文字命令,與機器語言一一對應。組合語言可以通過彙編得到機器語言,機器語言可以通過反彙編得到組合語言。彙編過程還包括變數記憶體管理,即經過彙編之後所有的變數和函式都變成了位址,而常量也變成了對應的值。

但是組合語言還是不夠直觀,乙個簡單的動作需要大量的語句來描述,因此又有了高階語言。

3. 高階語言

更簡單,符合人們的習慣,也更容易理解和修改。高階語言經過編譯器編譯之後可以得到目標程式。

編譯器的作用就是把高階語言的源**轉換成對應平台的目標**。高階語言書寫比較簡單,但是翻譯起來比較複雜,同樣的高階語言語句可以有不同的機器語言實現方法。因此同一段高階語言經過不同的編譯器編譯之後會得到不同的目標程式,就是說高階語言與彙編/機器語言之間不再是一一對應的關係了。上面說到彙編之後源**中的變數都變成了位址,所以用可執行檔案(如exe等)進行反彙編之後得到的也是一堆位址,幾乎不可能得到源**。

另外,關於跨平台,也是針對源**而言的。一段源**轉移到另乙個平台上要經過重新編譯、重新獲得目標程式才能執行,前提是源**沒有依賴於平台的特性。不過即使源**對平台有依賴性,重新編譯後也可以進行一定改動再使用。

參考部落格:原文說的比較詳細,本文僅是乙個簡單的小結而已。

程式語言(機器語言 組合語言 高階語言)

直接對硬體操作的語言,由多個0 1構成的。是低階語言底層。組合語言同機器語言一樣直接對硬體操作。組合語言雖麻煩,但是所能完成的操作不是一般高階語言能夠實現的。且生成的可執行檔案小,執行速度快 高階語言所編制的程式不能直接被計算機識別,必須經過轉換才能執行。按轉換方式又分為以下兩類 編譯類和解釋類語言...

從機器語言到組合語言

機器語言是計算機唯一能接受和執行的語言。機器語言由二進位製碼組成,每一串二進位製碼叫做一條指令。一條指令規定了計算機執行的乙個動作。一台計算機所能懂得的指令的全體,叫做這個計算機的指令系統。不同型號的計算機的指令系統不同。指令通常由幾個位元組組成,第乙個位元組是操作碼,它規定了計算機要執行的基本操作...

高階組合語言和低階組合語言的差別

80 86不支援像 if while repeat for break breakif try 這樣的機器指令。hla只要一遇到這些語句,就把他們編譯成乙個或多個真正的機器的指令 本書的目的 the art of assembly language 在於傳授你低階組合語言,談論第一章的高階結構只是實...