1. 程式人生 > >深入理解計算機系統 第三章 程式的機器級表示 part1

深入理解計算機系統 第三章 程式的機器級表示 part1

 

如題所示,這一章講解了程式在機器中是怎樣表示的,主要講組合語言與機器語言。

 

學習什麼,為什麼學,以及學了之後有什麼用

我們不用學習如何建立機器級的程式碼,但是我們要能夠閱讀和理解機器級的程式碼。

雖然現代的優化編譯器能夠很有效的將高階程式碼翻譯成機器級的程式碼,但是,為了能夠達到以下 2 點目的,我們還是要能夠閱讀和理解機器級的程式碼:

1、通過檢視程式對應的彙編程式碼,可以瞭解程式的執行效率,然後可以採取相應措施提高其效率

2、系統程式中的漏洞會被人利用,導致安全問題。瞭解這些漏洞是如何出現的,以及如何防禦他們,需要了解程式機器級表示的知識。

 

高階語言是如何被處理成機器語言的

可以參考本書第一章的“圖1-3”(第 9 頁),此圖及相關文字描述,詳細地表述了高階語言程式碼是如何一步步被編譯系統翻譯成機器語言程式碼的。

簡化一點,就是:

高階語言程式碼 被編譯器處理成 組合語言程式碼

組合語言程式碼 被彙編器處理成 機器語言程式碼

 

組合語言與機器語言的異同

彙編程式碼的表示非常接近於機器語言程式碼。與機器程式碼的二進位制相比,彙編程式碼的主要特點是它用可讀性更好的文字格式表示。