iT邦幫忙

DAY 14
0

淺入淺出-計算機組織系列 第 14

淺入淺出計組之旅(14)MIPS 體系結構 (4)

  • 分享至 

  • xImage
  •  

接下來再來繼續看 I 型指令集的部分,前面在指令分類上有點小誤解

其實 MIPS 指令可以用以下九宮格來做分類

前一篇所說的是 R 型運算指令,今天要提的是 I 型運算以及訪存指令

而關於三型的分支指令部分將在下一篇作完整介紹:)

指令格式的部分一樣參考下面這張圖表

如果指令中需要只用到立即數,也就是我們平常所使用的數字,那就需要用到 I 型指令

因為在 R型指令中只有 5 bits 的 shamt 是可以額外用來代表數字的

但是可以表示的大小最多也只有 2^5 = 32,是不夠用,所以才要另外設計一個新的指令類型

而 R 型指令中 opcode 為甚麼沒有跟 funct 合在一起也就是因為要跟其他類型的對齊的關係

I 型指令基本上與 R 型相同, opcode 仍然用於指定指令的操作類型

但這裡沒有 funct,所以不同的 I 型指令其 opcode 是不同的

Rs (Source Register):指定第一個來源操作數的暫存器編號

Rt (Target Register):指定目的操作數的暫存器編號

(對於某些指令還是表示第二個來源操作數的暫存器編號)

剩下的 16bits 被整合為 immediate:16位的立即數,可以表示 2^16 的不同數值

雖然無法滿足全部的立即數需求,但是大部分時候還是可以的

這邊也體現出 x86 的優勢所在,因為 x86 指令長度不固定,所以可以很容易地擴展表達的位元

所以也可以說 RISC 和 CISC 各有其優缺點存在

一樣來舉個例子: addi $21, $22, -50

經查表後 addi 的 opcode:8

$21 = $22 + (-50)

所以轉換成指令碼就是: 001000 10110 10101 1111 1111 1100 1110

下一篇將再繼續介紹分支指令的部分:


上一篇
淺入淺出計組之旅(13)MIPS 體系結構 (3)
下一篇
淺入淺出計組之旅(15)MIPS 體系結構 (5)
系列文
淺入淺出-計算機組織30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言