《深入瞭解計算機系統》筆記——彙編語言和機器語言

彙編語言和機器語言

我們不需要完全瞭解掌握機器語言、彙編語言來進行編程(這是計算機生產廠家要做的事)。我們所要知道的是如何看懂彙編語言就行了。我們所編寫的高級語言,被翻譯成彙編語言時,編譯器會自動進行一些優化處理。

機器語言

計算機是不能直接識別我們所編寫的C程序或者Java程序的。它只能識別機器語言,而機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指指令系統令的集合。
但要用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。這個工作十分繁瑣且困難。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍;並且編出的程序只是0和1的指令代碼,直觀性差,還容易出錯。
這時候我們就需要用到彙編語言了:

彙編語言

彙編語言的主體是彙編指令。彙編指令和機器指令的差別在於指令的表示方法上,彙編指令是機器指令便於記憶的書寫格式

計算機是隻認識機器指令的,這時候我們就需要編譯器將彙編語言轉換成機器指令的工具。

程序員->(輸入)彙編指令->編譯器->(轉化)機器碼->計算機

彙編語言是直接面向處理器(Processor)的程序設計語言。
處理器是在彙編指令的控制下工作的,處理器可以識別每一條指令爲機器指令。
彙編語言另一個特點是是它所操作的對象不是具體的數據而是寄存器或者存儲器。(彙編語言直接和寄存器和存儲器打交道),這也是彙編語言比其他語言執行速度要快的原因(相應的也比其他語言更復雜)。
彙編語言指令是機器指令的一種符號表示,而不同類型的CPU 有不同的機器指令系統,也就有不同的彙編語言。因此彙編語言程序與機器有着密切的關係。也正因如此,彙編語言的通用性和可移植性要比高級語言程序低。

總結對機器有相關性、高速度&效率、(相對於高級語言)編寫和調試複雜

高級語言

高級語言並不是指一種語言,而是包括很多編程語言,比如Java、C、C++、C#、python等等,是高度封裝的編程語言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章