1. 程式人生 > >2018-2019-1 20165225《資訊安全系統設計基礎》第四周學習總結

2018-2019-1 20165225《資訊安全系統設計基礎》第四周學習總結

2018-2019-1 20165225《資訊安全系統設計基礎》第四周學習總結


教材學習內容總結

  • 程式設計師的可見狀態如下:

  • image

暫存器
  • 一個x86-64的CPU包含一組16個儲存64位的通用目的暫存器。這些暫存器用來儲存整數資料和指標。下圖展示了這16個暫存器:

  • image

Y86-64指令及位元組序列
  • 課本P246圖4-2展示了Y86-64指令集,在後面的學習中也經常需要檢視並分析這個圖表。

  • image

Y86-64的順序實現
取指:從記憶體讀取指令位元組
譯碼:從暫存器檔案讀入最多兩個運算元
執行:算術/邏輯單元執行指令致命的操作、計算記憶體引用的有效地址;或增加/減少指標。
訪存:將資料寫入記憶體或從記憶體讀出資料。
寫回:最多可以寫兩個結果到暫存器檔案
更新:將pc設定成下一條指令的地址
SEQ順序
取指:將程式計數器暫存器作為地址,指令記憶體讀取指令的位元組
譯碼:從讀埠A、B同時讀暫存器值valA和valB
執行:根據指令型別,將算術/邏輯單元用於不同的目的
訪存:資料記憶體讀出或寫入一個記憶體字
寫回:兩個檔案埠分別用來寫ALU計算出來的值和寫從資料記憶體中獨處的值
pc更新
HCL
  • image

  • image

  • image

  • image

熟悉各個指令的執行過程和值的變化(圖就不一一列出了)
  • movq指令:
irmovp 、rrmovq 、mrmovq 、rmmovq。

整數操作指令 :

addq 、 subq 、 andq 、xorq。

跳轉指令:

jmp 、 jle 、 jl  、je 、 jne 、 jge 、jg。

條件傳送指令:

cmovle 、 comvl 、 cmove 、 cmovne 、comvge 、 cmovg。
  • call指令將返回地址入棧,ret從這樣的呼叫中返回。
    pushq指令入棧,popq指令出棧。
    halt指令停止指令的執行。

  • image

本週錯題總結

週一才能補上

結對學習

  • 本週依然和5221同學一起復習。

學習進度條

程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 3500行 12 14小時
第一週 63/150 1/12 3小時
第二週 150/150 2/12 10小時
第三週 150/150 3/12 13小時
第四周 97/150 4/12 10小時