第五週(10.05-10.11):
學習計時:共小時
讀書:
代碼:
做業:
博客:
1、學習目標安全
4、學習任務函數
5、後續學習預告(可選):
第四章《處理器體系結構》
6、學習過程
(提示:此處由學生填寫,學習過程,學習筆記,代碼編譯,運行結果,思考等)
3.1歷史觀點oop
Intel處理器俗稱X86,經歷了長期的、不斷進化的發展過程。
8086—〉Core i7(處理器版本後向兼容)
3.2程序編碼
編譯代碼:gcc =O1 -o p p1.c p2.c
實際上gcc命令調用了一系列程序,將源代碼轉化成可執行代碼。學習
3.2.1機器級代碼編碼
指令集體系結構ISA:定義了處理器狀態、指令的格式,每條指令對狀態的影響。翻譯
3.3數據格式
char b-字節
short w-字
int l-雙字設計
數據傳送指令:
MOV S,D指針
movb 傳送字節
movw 傳送字
movl 傳送雙字
(上述gcc生成的彙編代碼指令都有一個字符後綴,代表操做數的大小)調試
3.5算術和邏輯操做
四種整數操做:code
加載有效地址:實際是將有效地址寫入目的操做數,目的操做數必須是寄存器。
一元操做:只有一個操做數,能夠是寄存器也但是存儲器位置。
3.6控制
翻譯條件分支
將條件表達式和語句從c語言翻譯成機器語言,最經常使用的方式就是結合有條件和無條件跳轉。
do循環
do
body-statement while(test-expr);
loop:
body-statement t = test-expr; if(t) goto loop;
while循環
while (test-expr)
body-statement
if(!test-expr)
goto done;
do
body-statement while(test-expr);
for循環
for(init-expr;test-expr;update-expr)
body-satament
翻譯條件分支
將條件表達式和語句從c語言翻譯成機器語言,最經常使用的方式就是結合有條件和無條件跳轉。
1.寄存器的使用
調用者——%eax、%edx、%ecx
被調用者——%ebx%esi%edi
寄存器%ebp-幀指針
寄存器%esp-棧指針
7、遇到的問題及解決
感受跟上個學期的彙編聯繫很大,但彙編沒學好.....如今看這個比較難過
8、其餘 (提示:此處由學生填寫,靈感,領悟等)