【計算機本科補全計劃】指令:計算機的語言(MIPS) --計算機組成原理

正文以前

今天的主題就是,從新學一次彙編語言,不過總感受跟單片機的彙編語言沒啥差異,不過就是地址變寬,而後一些限制多了很多,由於計算機要進行大量的運算,因此更加全面而且更加開闊吧,畢竟單片機只是嵌入式經常使用,屬於比較低端的,不過操做其實差很少,幸甚至哉~~程序員


正文

一、要讓計算機服從指揮,就必需要有計算機的語言,計算機語言的基本單詞稱之爲指令,一臺計算機的全部指令稱之爲該計算機的指令集。(MIPS講述)編程


二、在MIPS體系結構中,對寄存器和存儲器的操做以下:數組

寄存器的大小爲32位,因爲32位爲一組的狀況很常見,因此稱之爲 「字(word)」,另外因爲MIPS使用字節編址,因此連續的地址字的地址也就相差4。另外,處理器只能將少許的數據保存在寄存器上,剩下的數以十億記的數據都是放在存儲器上的。好比數據結構和數組等。因此MIPS體系中要對存儲器和寄存器之間的數據進行傳輸,就有了 數據傳送指令 。其具體的實現方法是:講一個基址存於寄存器中,而後經過數據傳送指令進行取值,因此當使用數據傳送指令取存儲器中的數據(字)的時候,其地址偏移量是基址+4*邏輯偏移量。按字節編址的狀況下,全部字的起始地址必須是4的倍數,這就是 對齊限制數據結構


三、計算機硬件設計的三大原則:翻譯

  • 簡單源於規整
  • 越小越快
  • 優秀的設計須要適宜的折中方案

四、根據以上的結論,能夠得出如下兩個結論:設計

  • 存儲器必定比寄存器慢,符合越小越快原則,由於存儲器的數量遠大於寄存器
  • 寄存器中的數據更絨裏利用。訪問時間短,吞吐率高,功耗更小。

五、在MIPS彙編語言中,有以下幾個通行定理:3d

對當即數(也就是常數1,2··· 這些存放在存儲器中的數據)的操做通常都是相對於對寄存器操做的指令加上一個i(immediately),對於無符號數則加上一個u,默認狀況下是對寄存器進行有符號數的操做。另外注意,因爲「0」這個數用處遠比別的常數大,因此專門在寄存器zero中存放了0,且恆爲0;至於爲何大?有的時候是要判斷一個數是否小於0.有時候是要用0進行操做,好比異或,或非等一些操做可能用的上,因此其機率遠遠的高於別的常數,這就是前面講過的「加速大機率事件發生」的重要思想的體現!cdn


六、有符號數與無符號數。blog

目前廣泛採用二進制補碼的方式實現負數,爲何呢?我也是一陣苦惱,後來慢慢的摸索發現,二進制補碼能夠直接進行想加操做就得出其具體的數值,與無符號數完美的統一,具體的實現方式是把符號位,也就是最左端的一位做爲符號位,而後在計算機十進制數值的時候,對符號位的十進制值取負數,而後與後面的位數的十進制數相加,就會獲得其表示的負數,而取反碼這一方式雖然正數負數對稱,可是存在了兩個0 的問題,對於粗心的程序員是很麻煩的,另外,求一個正數的相反數的補碼錶現形式很簡單,補碼=反碼+1,好比0010 表示+2,第一位是符號位, 若是要取-2,那麼只須要先變爲1101,而後加1 ,獲得1110,這就是二進制的-2的補碼錶示。轉換爲十進制的時候就是事件

-1 2^3+1 2^2+1 2^1+0 2^0=-2。

固然,這一公式僅僅針對負數,正數的反碼補碼都是原碼。


七、符號擴展。

不少時候存在了把十六位數轉換爲32位數的狀況。這個時候,只須要把符號位複製16次,而且把原來的16位數放在右邊,符號位複製後的16個數放在左邊,組合以後的32位數就是32位的符號數了。而後你再算相反數的補碼錶示,就會發現,好神奇喲~~


八、計算機中的指令實際上是早期的計算機工程師們爲了方便本身編程而實現的,可是計算機本質上是隻接受二進制語言的,也就是機器語言,因此全部的指令語言都存在一個轉換過程,也就是前面說過的。彙編語言到機器語言的翻譯,操做志林分爲R I(J)兩(3)種型號,前者對寄存器進行操做,後者對由於對存儲器進行取址等操做,因此在32位的操做指令中後16所有劃歸地址表示。


九、當今計算機基於如下兩個重要準則來構建:(這些原則引出了存儲程序的概念,釋放了計算機的巨大潛力。好處就是程序能夠被當成二進制數的文件發行)

  • 指令用數的形式表示
  • 和數據同樣,程序存儲在存儲器中,而且能夠讀寫。

十、邏輯操做:

  • AND 和
  • OR 或
  • NOT(引入NOR或非操做,實現NOT(A)= NOT (A OR 0 )= A NOR 0 )
  • XOR 異或

十一、決策指令:(可用這些指令進行判斷,循環,小於,相等,小於或等於,大於,大於或等於等操做,實現基本塊)

  • beq 若是想等就跳轉
  • bne 若是不相等就跳轉
  • slt 小於則置位,若是第二個操做數小於第三個,那麼就對第一個操做數置位1
  • slti 對當即數的小於則置位

正文以後

今天有神祕嘉賓開赴武漢,因此如今18:45寫完筆記的我要先回去,而後去吃個飯,而後再去接駕咯!~~~

相關文章
相關標籤/搜索