2018-2019-1 20165206 《信息安全系統設計基礎》第3周學習總結
阿新 • • 發佈:2018-10-14
圖片 info 程序 鏈接器 命令 擴展 mage bubuko 類型
- 2018-2019-1 20165206 《信息安全系統設計基礎》第3周學習總結
- 教材學習內容總結
程序編碼:gcc命令調用一整套的程序將源代碼轉化為可執行文件。
首先,C預處理器擴展源代碼;
其次,編譯器產生源文件的匯編代碼;
然後,匯編器將匯編代碼轉為二進制目標代碼文件;
最後,鏈接器將目標代碼文件與實現庫函數的代碼合並,產生可執行代碼文件。機器級編碼的兩個抽象:
第一種是ISA,即指令集體系結構或指令集架構,定義了處理器狀態、指令的格式,以及每條指令對狀態的影響。
第二種是機器級程序使用的內存地址是虛擬地址。匯編與反匯編:
查看C語言編譯器產生匯編代碼的指令:
gcc -Og -S main.c
gcc編譯並匯編的指令:
gcc -Og -c main.c
反匯編的指令:
objdup -d main.o
示例:
源代碼:
匯編:
反匯編:
操作數的三種類型:
第一種是立即數,用來表示常數值。
第二種是寄存器,表示某個寄存器的內容。
第三種是內存引用,根據有效地址訪問某個內存位置。有效地址計算公式:
一個立即數偏移Imm,一個基址寄存器rb,一個變址寄存器ri,一個比例因子s,有效地址被計算為:Imm + R[rb] + R[ri]*s數據傳送指令
- 上周考試錯題總結
錯題一:字長32位的機器,虛擬地址空間範圍是(0-2^32-1)。
錯題二:a=[0010], b=[1100], a||b的值是(非零(TRUE))。
2018-2019-1 20165206 《信息安全系統設計基礎》第3周學習總結