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

2021-08-30 15:57:34 字數 503 閱讀 1960

計算機執行機器**。彙編**是機器**的文字表示。

過程呼叫需要棧來支援。

棧幀以兩個指標界定,暫存器%ebp為幀指標,而%esp為棧指標。程式執行時,棧指標可以移動。

假設過程p(呼叫者)呼叫過程q(被呼叫者),則q的引數放在p的棧幀中(參考上圖中引數1,…n),p中的返回位址也被壓入棧中,形成p的棧幀的末尾。返回位址就是當程式從q返回時應該繼續執行的地方。

過程的區域性變數也儲存在棧中。

過程示例

如下圖,caller的棧幀儲存了區域性變數arg1,arg2。呼叫swap_add時,將swap_add引數壓入棧,並將caller的返回位址壓入棧。

《深入理解計算機系統》 第1章 計算機系統漫遊

4.執行hello程式 最近重啟了寫部落格,都說念念不忘必有迴響。自從上一遍部落格,到現在已經過去了快兩年的時間。在這期間一直在想著什麼時候寫個部落格呀,什麼時候再摸著鍵盤一點點的碼字啊,心裡一直在想,直到現在,終於有了行動。看著乙個乙個的字,隨著鍵盤的敲擊,一串串躍然於螢幕之上,心裡有說不出來的平...

深入理解計算機系統3

不同機器型別使用不同的且不相容的指令和編碼方式,即使是完全一樣的程序,執行在不同的作業系統上也會有不同的編碼規則,因此二進位制 是不相容的。用位向量對集合進行編碼,位向量表示方法是 從高位向低位 即從下標0在向量的最後 x y 等價於 x y c語言並沒有明確定義對於有符號數應該使用哪種型別的右移,...

深入理解計算機系統之第6章

1.了解基本的儲存技術,2.程式設計師需要理解儲存器層次結構,因為其對應用程式的效能有巨大影響。3.理解區域性性原理,縮短程式執行時間。區域性性通常有兩種不同的形式 時間區域性性和空間區域性性。在乙個具有良好時間區域性性的程式中,被引用過一次的儲存器位置很可能在不遠的將來再被多次引用。在乙個具有良好...