2017-2018-1 20155301 《信息安全系統設計基礎》第7周學習總結

2017-2018-1 20155301 《信息安全系統設計基礎》第7周學習總結

教材學習內容總結

  • 作為我們處理器實現的運行實例,因為受x86-64指令集的啟發,它被俗稱為“x86”,所以我們稱我們的指令集為“Y86-64”,與“x86-64”相比,Y86-64指令集的數據類型、指令和尋址方式都要少一些。它的字節級編碼也比較簡單,機器代碼沒有相應的x86-64代碼緊湊,不過設計他的CPU譯碼邏輯也要簡單一些。
  • 定義Y86指令集體系結構:包括定義各種狀態元素、指令集和它們的編碼、一組編程規范和異常事件處理。
  • Y86-64的狀態類似于x86-64。有15個程序寄存器:%rax、%rcx、%rdx、%rbx、%rsp、%rbp、%rsi、%rdi和%r8到%r14。
  • 內存從概念上來說就是一個很大的字節數組,保存著程序和數據。
  • 下圖給出了Y86-64 ISA中各個指令的簡單描述。Y86-64指令集基本上是x86-64指令集的一個子集。它只包括8字節整數操作,尋址方式較少,操作也較少。

1072918-20171104104135591-104788335.png

  • x86-64的movq指令分成了4個不同的指令:irmovq、rrmovq、mrmovq、rmmovq分別顯示地指明源和目的的格式。源可以是立即數(i)、寄存器(r)或內存(m)。目的可以是寄存器(r)或內存(m)。兩個內存傳送指令中的內存引用方式是簡單的基址和偏移量形式。
  • 有4個整數操作指令,如下圖中的OPq。它們是addq、subq、andq和xorq。它們只對寄存器數據進行操作,而x86-64還允許對內存數據進行這些操作,這些指令會設置3個條件碼ZF、SF和OF。
  • 7個跳轉指令是jmp、jle、jl、je、jne、jge、jg。
  • 有6個條件傳送指令:cmovle、cmovl、cmove、cmovne、cmovge、cmovg。這些指令的格式與寄存器-寄存器傳送指令rrmovq一樣,但是只有當條件碼滿足所需要的約束時,才會更新目的寄存器的值。
  • call指令將返回地址入棧,然后跳到目的地址。ret指令從這樣的調用中返回。
  • pushq和popq指令實現了入棧和出棧,就像在x86-64中一樣。
  • halt指令停止指令的執行。x86-64中有一個與之相當的指令hlt。x86-64的應用程序不允許使用這條指令,因為他會導致整個系統暫停運行。
  • 每個指令需要1~10個不等的字節。每條指令的第一個字節表明指令的類型。這個字節分為兩部分,每部分4位:高4位是代碼部分,低4位是功能部分。
  • 在指令編碼中以及在我們的硬件設計中,當需要指明不應該訪問任何寄存器時,就用ID值0xF來表示。
數字寄存器名字數字寄存器名字
0%rax8%r8
1%rcx9%r9
2%rdxA%r10
3%rbxB%r11
4%rspC%r12
5%rbpD%r13
6%rsiE%r14
7%rdiF無寄存器

-Y86-64異常,對于Y86-64來說,程序員可見的狀態包括狀態碼State,它描述程序執行的總體狀態。當遇到這些異常的時候,我們就簡單地讓處理器停止執行指令

名字含義
1AOK正常操作
2HLT遇到器執行halt指令
3ADR遇到非法地址
4INS遇到非法指令
  • 邏輯設計和硬件控制語言HCL,在硬件設計中,用電子電路來計算對位進行運算的函數,以及在各種存儲器單元中存儲位,邏輯1是用1.0伏特左右的高電壓表示的,而邏輯0是用0.0伏特左右的低電壓表示的。
  • AND用&&表示,OR用||表示,而NOT用!表示,我們用這些符號而不用C語言中的位運算符&、|和~,這是因為邏輯們只對單個位的數進行操作。
  • 將很多的邏輯們組合成一個網,就能構建計算塊,稱為組合電路。如何構建這些網有幾個限制:
    1.每個邏輯們的輸入必須連接到下述選項之一:

    1)一個系統輸入(成為主輸入)

    2)某個存儲單元的輸出

    3)某個邏輯門的輸出。

    2.兩個或多個邏輯們的輸出不能連接在一起。否則它們可能會實現上的信號矛盾,可能會導致一個不合法的電壓或電路故障。

    3.這個網必須是無環的,也就是在網中不能有路經經過一系列的門而形成一個回路,這樣的回路會導致該網絡計算的函數有歧義。
  • HCL表達式很清楚地表明了組合邏輯電路和C語言中邏輯表達式的對應之處。它們都是用布爾操作來對輸入進行計算的函數,但是有以下區別:
    1.因為組合電路是由一系列的邏輯門組成,它的屬性輸出會持續地響應輸入的變化,如果電路的輸入變化了,在一定的延遲之后,輸出也會相應地變化,而C表達式只會在程序執行過程中被遇到時才進行求值。
    2.C的邏輯表達式允許參數是任意整數,0表示FLASE,其他任何值都表示TRUE,而邏輯門只對位值0和1進行操作。
    3.C的邏輯表達式有個屬性就是它們可能只被部分求值。如果一個AND或OR操作的結果只用對第一個參數求值就能確定,那么就不會對第二個參數求值了。
  • 在處理器設計中,很多時候都需要將一個信號與許多可能匹配的信號做比較,以此來檢測正在處理的某個指令代碼是否屬于某一類指令代碼。
  • 時鐘寄存器存儲單個位或字。時鐘信號控制寄存器加載輸入值。
  • 隨機訪問存儲器存儲多個字,用地址來選擇該讀或該寫哪個字。
  • 通常,處理一條指令包括很多操作,將他們組織成某個特殊的階段序列,即使指令的動作差異很大,但所有的指令都遵循統一的序列。下面是關于各個階段以及各階段內執行操作的簡略描述:
    1.取指:取指階段從內存讀取指令字節,地址為程序計數器(PC)的值。從指令中抽取出指令指示符字節的兩個四位部分,稱為icode和ifun。它可能去出一個寄存器值指示符字節,指明一個或兩個寄存器操作數指示符rA和rB。他還可能取出一個四字節常數字valC。他按順序方式計算當前指令的下一跳指令的地址valP。
    2.譯碼:譯碼階段從寄存器文件讀入最多兩個操作數,得到值valA和/或valB。通常,他讀入指令rA和rB字段指明的寄存器,不過有些指令是讀寄存器%rsp的。

    3.執行:在執行階段,算術\邏輯單元要么執行指令指明的操作,計算內存引用的有效地址,要么增加或減少棧指針。得到的值我們稱為value。在此,也可能設置條件碼。對一條條件傳送指令來說,這個階段會檢驗條件碼和傳送條件,如果條件成立,則更新目標寄存器。

    4.訪存:訪存階段可以將數據寫入內存,或者從內存中讀出數據。讀出的值為valM。

    5.寫回:寫回階段最多可以寫兩個結果到寄存器文件。

    6.更新PC:將PC設置成下一條指令的地址。
  • SEQ階段的實現
    在控制邏輯中必須被顯式引用的常數:(常數值都是大寫的)

1072918-20171104104153060-1550489194.png

nop指令只是簡單的經過各個階段,除了將PC加1,不進行任何處理。halt指令是處理器狀態被設置為HLT,導致處理器停止運行。
實驗樓環境

1072918-20171104104202701-1229261320.png

教材學習中的問題和解決過程

代碼調試中的問題和解決過程

代碼托管

image

上周考試錯題總結

  • 錯題1及原因,理解情況
  • 錯題2及原因,理解情況
  • ...

結對及互評

點評模板:

  • 博客中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 代碼中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 其他

本周結對學習情況

[20155317](http://www.cnblogs.com/wxwddp/p/7671075.html)
![image](http://note.youdao.com/favicon.ico)
- 結對學習內容- XXXX- XXXX- ...

其他(感悟、思考等,可選)

xxx
xxx

學習進度條

代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
目標5000行30篇400小時
第一周200/2002/220/20
第二周300/5002/418/38
第三周500/10003/722/60
第四周300/13002/930/90

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法

  • 計劃學習時間:XX小時

  • 實際學習時間:XX小時

  • 改進情況:

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)

參考資料

  • 《深入理解計算機系統V3》學習指導
  • ...

轉載于:https://www.cnblogs.com/fengxingck/p/7782690.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257127.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257127.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257127.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[學習筆記]面向對象VS面向過程

1.編程范式 為了實現同一個任務不同的編程方式類別稱為編程范式 2.面向過程編程 面向過程從上到下運行,將一個大問題分解成小問題,再將小問題繼續分解成足夠簡單在一定范圍內可以解答的小問題為止!3.面向對象編程 面向對象簡稱為OOP&#x…

批處理系統和分時系統各具有什么特點?為什么分時系統的響應比較快?

批處理系統的特點如下 優點:系統的吞吐率較高。 (作業的調度由系統控制,并允許幾道程序同時投入運行,只要合理的搭配作業(例如把計算量大的作業和I/O量大的作業搭配)就可以充分利用系統的資源) …

怎么解決word敲空格刪掉后面的字的問題

將word左下角的改寫改為插入,或者筆記本的按下insert的按鈕

Dubbo原理解析-監控

Dubbo發布代碼中,自帶了一個簡易的監控中心實現。對于一般的小業務這個監控中心應該能夠滿足需求,對于那些大業務量的大公司一般都會有自己的監控中心,更加豐富的功能如常用的報警短信通知等等。這章講解分析使得讀者能夠了解一般的監控中心實…

學習筆記(04):Python網絡編程并發編程-什么是socket

立即學習:https://edu.csdn.net/course/play/24458/296233?utm_sourceblogtoedu 1.什么是網絡編程? 答:網絡編程也叫做socket編程即套接字編程,基于遵循socket套接字的規定進行的編程 2.什么是socket? 答:socket就是…

mysql 獲取自增主鍵

MyBatis 3.2.6插入時候獲取自增主鍵方法有二以MySQL5.5為例&#xff1a;方法1&#xff1a;<insert id"insert" parameterType"Person" useGeneratedKeys"true" keyProperty"id">insert into person(name,pswd) values(#{name},#…

虛擬主機用戶ftp和apache用戶文件互操作權限解決方法

方法1.用戶組控制方法 先給所有的虛擬主機主機中的虛擬用戶(ftp用戶)加入到apache這個組.然后設置umask為002.這樣用戶和組都有讀寫執行權限。這個是比較容易的方法.但不安全。不同的用戶可以刪除對方的文件&#xff0c;因為是同一個組,組有讀寫執行的權限. 方法2.使用linux高級…

數學的列向量內積計算方法

x(cos x1 y(-sinx1sinx1) cosx1) [x,y]cosx1*(-sinx1)sinx1*cosx1

遍歷枚舉

/// <summary> /// 卡卷類型 /// </summary> public enum CardTypeEnum {代金券 1,優惠卷 2 } foreach (int myCode in Enum.GetValues(typeof(CardTypeEnum))){string strName Enum.GetName(typeof(CardTypeEnum), myCode); //文本 keystring strValue myCode…

前端工程師必須要知道的SEO技巧(2):制作比設計還要漂亮的代碼(內容和語義化代碼)上...

前言:現在的網站設計,大多數不僅僅要求美觀,前端代碼往往發揮著重要的作用.這意味著很大一部分搜索引擎優化或搜索引擎優化責任應該落在設計師身上.然而,有大量的網頁設計師不理解這個問題以及如何在建立一個網站初期就達到是完全的搜尋引擎優化.當然,要達到這個高度,肯定離不開…

學習筆記(05):Python網絡編程并發編程-基于socket實現簡單套接字通信

立即學習:https://edu.csdn.net/course/play/24458/296234?utm_sourceblogtoedu 1.服務器端 #以打電話通訊為例子進行說明 #導入相應的模塊 import socket#1、設置套接字的類型以及協議(買手機)&#xff0c;其實就是設置一個套接字&#xff0c;phone即為一個套接字 #設置為網…

JeeSite 4.0 說說前端的那些事

2019獨角獸企業重金招聘Python工程師標準>>> 引言 一個不得不說的話題&#xff0c;經過近幾年的發展&#xff0c;Web前端開發已經不是一個新有的崗位了&#xff0c;前端技術發展非常迅速&#xff0c;技術更新換代也很快&#xff0c;對于前端工程師來說是一個很大的挑…

筆記本換固態硬盤

我換固態硬盤是讓熟人修電腦換的&#xff0c;結果跟我要100塊錢的服務費&#xff0c;在這我絕得太坑了&#xff0c;所以建議大家自己換固態硬盤 1、首先自己在網上買一塊相對較好的固態硬盤&#xff0c;盡量買大點 2、還需要買一個硬盤的托盤&#xff0c;這個是直接換筆記本上的…

Bootstrap富文本編輯器-bootstrap-wysiwyg

在進行英語試題的錄入中&#xff0c;因為英語試題經常會有類似如下的試題&#xff1a; My friend watches dragon boat races at the Dragon Boat Festival.(對劃線部分提問) ——_______ is the Double Ninth Festival? ——It is in October. 在上面的題目中&#xff0c;我們…

學習筆記(06):Python網絡編程并發編程-在簡單套接字基礎上加上通信循環

立即學習:https://edu.csdn.net/course/play/24458/296235?utm_sourceblogtoedu 1.服務器端 #以打電話通訊為例子進行說明 #導入相應的模塊 import socket#1、設置套接字的類型以及協議(買手機)&#xff0c;其實就是設置一個套接字&#xff0c;phone即為一個套接字 #設置為網…

怎么把word轉換pdf,pdf轉換word ,pdf轉換成高清圖片

方法一&#xff1a;一個成套的軟件&#xff0c;包含了&#xff0c;word -->pdf ,Pdf—>word,pdf-->圖片 迅捷PDF在線轉換器 地址在這 &#xff08;http://app.xunjiepdf.com/ &#xff09;&#xff0c; 但是上面這個有個限制&#xff0c;只能轉一定大小的文件&#x…

程序包com.sun.istack.internal不存在

添加一下依賴 <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl --><dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.2.11</version></dependency&…

iOS微博項目(七)發微博和定位

class a導入class b&#xff0c;class b導入class a 會出現錯誤 如果keyboard不顯示&#xff0c;應該是hardware-》connect選擇了 1. 發微博UI 2.定位 一直不回調&#xff0c;后來發現是ios8后方法更新了&#xff1a;http://blog.devzeng.com/blog/ios8-corelocation-framework…

學習筆記(07):Python網絡編程并發編程-客戶端與服務端代碼bug修復

立即學習:https://edu.csdn.net/course/play/24458/296236?utm_sourceblogtoedu 1.修復端口被占用的bug import socketphone socket.socket(socket.AF_INET,socket.SOCK_STREAM)#修復重復多次運行程序斷就被占用的bug&#xff0c;在綁定端口前設置 phone.setsockopt(socket.…

設計模式之UML類圖

在學設計模式的過程中經常碰到各式各樣的UML類圖。那些眼花繚亂的符號有什么含義呢&#xff1f; 類圖含義 類圖中的關系 從網上找來一張圖作為實例 依賴關系&#xff1a;比如動物依賴氧氣和水&#xff0c;這里如學生要依賴自行車。用虛線箭頭表示。關聯關系&#xff1a;學生和身…