《Csapp》學習筆記 1

2021-09-08 09:20:08 字數 1026 閱讀 2640

andrew,gz,2013-3-17

資訊是「位+上下文」。也就是說,資訊在計算中如此表達,由多個有序位(bit)及其值(0或1)組成的整體。

圖表 1 編譯系統

1.預編譯階段

輸入的是c語言的原始檔,通常為*.c。它們通常帶有.h之類標頭檔案的包含檔案。這個階段主要處理原始檔中的#ifdef、 #include和#define命令。該階段會生成乙個中間檔案*.i,但實際工作中通常不用專門生成這種檔案,因為基本上用不到;若非要生成這種檔案不可,可以利用下面的示例命令:

gcc -e test.c -o test.i

2.編譯階段

輸入的是中間檔案*.i,編譯後生成組合語言檔案*.s 。這個階段對應的gcc命令如下所示:

gcc -s test.i -o test.s

3.彙編階段

將輸入的彙編檔案*.s轉換成機器語言*.o。這個階段對應的gcc命令如下所示:

gcc -c test.s -o test.o

4.鏈結階段

將輸入的機器**檔案*.s(與其它的機器**檔案和庫檔案)匯集成乙個可執行的二進位制**檔案。這一步驟,可以利用下面的示例命令完成:

gcc test.o -o test

資訊的表示和處理

端:在計算機系統體系結構中用來描述在多位元組數中各個位元組的儲存順序。

[2] gcc使用入門.

[3] 大小端.

[4] wiki.

CSAPP課程筆記1

第一周 計算機系統概述 1.sum函式執行錯誤 問題 呼叫函式 計算陣列a中元素的和 int sum int a,unsigned len 當len為0時,呼叫後得不到結構,程式執行異錯誤,當len定義為int型時執行正確 2.函式呼叫後變數的變化 問題 在p.c檔案中,為 double d voi...

CSAPP 第1章筆記

當我們對系統的某個部分加速時,其對系統整體效能的影響取決於該部分的重要性和加速程度。若系統執行某應用程式需要時間為to ldt ol d。假設系統某部分所需執行時間與該時間的比例為 而該部分效能提公升比例為 k k 即該部分初始所需時間為 t old to ld t old,現在所需時間為 told...

CSAPP讀書筆記1

匯流排 相當於一顆線連線在各個部分,在各個部分傳遞資訊 i o裝置 input和ouput,除了鍵鼠,還有顯示器,磁碟,可執行程式就放在磁碟上 主存 暫時儲存資料的,這裡我理解為記憶體,不知道行不行 處理器 cpu從記憶體讀取指令,執行操作,然後使其指向下一條指令 在i o中輸入.hello,暫存器...