2018-2019-1 20165228 《資訊安全系統設計基礎》第四周學習總結
阿新 • • 發佈:2018-11-08
2018-2019-1 20165228 《資訊安全系統設計基礎》第四周學習總結
教材學習內容總結
Y86-64指令集體系結構
Y86程式中的每條指令都會讀取或修改處理器狀態的某些部分
程式設計師可見狀態
- 15個程式暫存器(RF):每個暫存器儲存一個64位,即8位元組的字(即Y86-64指令長度)
- 3個條件碼(CC):ZF(零標誌位)/SF(符號標誌位)/OF(溢位標誌位)
程式狀態(Stat)
- 程式計數器(PC):存放當前正在執行指令的地址,計算下一條指令的地址時,根據當前指令的編碼長度計算。
記憶體(DMEM):很大的位元組陣列,用來存放程式和資料。
Y86-64指令
- Y86-64程式暫存器識別符號:
- 暫存器識別符號範圍:0-0xE
- 程式暫存器的儲存:暫存器檔案
- 不應訪問任何暫存器:用0xF表示
- Y86-64指令編碼
- 編碼長度:1位元組~10位元組
- 組成:1、一個單位元組的指令指示符
2、一個單位元組的暫存器指示符
3、一個八位元組的常數字 - 各指令詳細解釋:
- halt指令:十六進位制表示為00,佔一個位元組。執行時,使處理器停止。
- nop指令:十六進位制表示為10,佔一個位元組。
- rrmovq rA,rB指令:十六進位制表示為 20 rArB,佔兩個位元組。
...
Y86-64指令集的功能碼:高四位為程式碼部分,低四位為功能部分。
邏輯設計和硬體控制語言HCL
- 為實現一個數字系統需要三個重要的組成部分:
- 計算對位進行操作的函式的組合邏輯
- 儲存位的儲存單元
- 控制儲存單元更新的時鐘訊號
- HCL與HDL的區分
- HCL:硬體控制語言
- HDL:硬體描述語言
- HCL表示式中的運算子:都只對單個字進行操作
- 與:AND用“&&”表示
- 或:OR用“||”表示
- 非:NOT用“!”表示
- 與、或、非三種邏輯閘可以用一種與非門或者或非門實現
- 組合電路:多個邏輯閘組合成網(必須無環)構成計算塊,稱為組合電路。
- 多個邏輯閘組合時的限制:每個邏輯閘的輸入必須連線到下述選項之一,且兩個或多個邏輯閘的輸出不能連線在一起。
1、一個系統輸入
2、某個儲存器單元的輸出
3、某個邏輯閘的輸出 - HCL整數表示式
情況表示式:
算數/邏輯單元(ALU):加、減、與、異或
- 集合關係:
iexpr為被測試的值,iexpr1~iexprk為帶匹配的值,均為正數表示式。
iexpr in { iexpr1,iexpr2,...,iexprk }
- 儲存器和時鐘
按位儲存資訊的裝置 - 時鐘暫存器:簡稱暫存器,儲存單個位或字。Y86-64中使用是中暫存器儲存程式計數器PC、條件程式碼CC和程式狀態Stat
- 隨機訪問暫存器:簡稱記憶體,儲存多個字。
- 暫存器
- 硬體暫存器:將其輸入和輸出的線連線到電路的其他部分。當時鐘上升沿到來才會載入新的輸入訊號並輸出,是電路不通部分中組合邏輯之間的屏障。
- 程式暫存器:CPU中為數不多的可定址的字,這裡的地址為暫存器ID,這些字通常都存在暫存器檔案中。
- 暫存器組成:兩個讀埠、一個寫埠、時鐘