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

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

### 這一章主要是介紹高階語言,例如C語言編寫的程式,經過編譯後轉換為彙編程式。以往在程式設計師對機器進行操作主要都是使用匯編語言。筆者在大學做微控制器開發的時候,老師制訂的實驗,明確要求使用匯編語言。
組合語言的使用和掌握能夠很好地幫助程式設計師對系統資源進行把控,同時也要求了程式編寫邏輯的儘量地靠近機器的思考,對於程式設計師打下良好的程式設計基礎具有很好地學習作用。
在這一章裡面,由於時代的進步,目前開源社群或者廠商已經提供了能夠很好地對高階語言進行優化的編譯器GCC,這樣即使是邏輯更為抽象的高階語言開發的程式也能夠很好地轉換為效能良好的彙編程式,更何況,抽象化程度更高的高階語言對於開發複雜的程式更有效率。因此目前對於程式設計師的要求已經從能夠寫彙編程式到能夠讀懂彙編程式。
那麼為什麼要會讀會彙編程式呢?

    1.同一個程式,使用不同的GCC,會產生不同的彙編程式,同一個GCC,相同功能的一個程式,不同寫法會產生不同的彙編程式,程式效能的優化,單純從高階語言上很難做出優化,這時候就需要對程式編譯後產生的彙編程式進行解讀和重構。
    2.在程式編寫過程中,很多錯誤是存在在

##彙編指令