深入理解計算機系統 第三版 第三章家庭作業答案

2021-10-23 15:55:26 字數 1373 閱讀 1341

這章有的地方看第一遍的時候看的雲裡霧裡,看第二遍的時候才看明白。

印象較深的是被呼叫者儲存暫存器,這部分內容看的得有3遍,沒看懂之前一直很迷,看懂之後只有兩個感覺:一是妙,二是簡單。

這章內容,讓我知道了c語言的**是如何在機器上執行的,在此過程中,我突然很好奇編譯器如何把c原始碼翻譯為組合語言,以及如何做各種優化,真的太強了。

下面的內容只有**部分:

3.58

long

decode

(long x,

long y,

long z)

3.61

long

created_alt

(long

*xp)

3.63

#include

using

namespace std;

long

switch_prob

(long x,

long n)

return reslut;

}int

main()

3.71

#include

#include

#define buf_size 10

void

get_echo()

return;}

intmain()

3.73

find_range:

vxorps %xmm1,

%xmm1,

%xmm1

vucomiss %xmm0,

%xmm1

ja .neg

jb .pos

je .zero

movl $3

,%eax

.zero

movl $1

,%eax

ret.neg

movl $0

,%eax

ret.pos

movl $2

,%eax

ret

3.74

find_range:

vxorps %xmm1,

%xmm1,

%xmm1

vucomiss %xmm0,

%xmm1

cmova $0

,%eax

cmove $1

,%eax

cmovb $2

,%eax

cmovp $3

,%eax

rep;ret

深入理解計算機系統 第三章

1.假設過程p 呼叫者 呼叫過程q 被呼叫者 則q的引數放在p的棧幀中。2.另外,當p呼叫q時,p中的返回位址被壓入棧中,形成p的棧幀的末尾。3.返回位址就是當程式從q返回時應該繼續執行的地方。程式暫存器組是唯一能夠被所有過程共享的資源。雖然在給定時刻只能有乙個過程是活動的,但是我們必須保證當乙個過...

《深入理解計算機系統(第三版)》第一章

1 計算機提供不同層次的抽象表示,來隱藏實際實現的複雜性 2 程式設計師必須知道編譯系統是如何工作的原因 3 執行hello程式 4 併發是乙個通用的概念,指乙個同時具有多個活動的系統 並行指的是用併發使乙個系統執行的更快 5 意識到快取記憶體的存在,可以利用快取記憶體將程式的效能提高乙個數量級。執...

速讀《深入理解計算機系統(第三版)》問題及解決

p13 使用者棧和執行時堆有什麼區別?資料結構中經常說堆疊,這裡的堆和棧一樣嗎?和作業系統的堆 棧有什麼區別?參考 堆和棧的區別 記憶體和資料結構 作業系統 p31 c格式化指令 2x 表明整數必須用至少兩個數字的十六進製制格式輸出。之前學過 7.2f 點後的2指的是小數點後兩位,那麼 2x 中的點...