在非條件分支指令下,因為不需要判斷因此可以擴大目標地址的範圍
理想情況當然是可以直接 32bits 拿來表示位址
但是我們可以看到 MIPS 的前六個 bit 是 opcode
所以目標地址的計算方式就變成
PC = { (PC+4) [32..28], address, 00 }
也就是 取 PC+4 後的最高 4bits + address + 最後兩位數的 0
J 型指令的目標地址範圍可以到達正負 2^27 次方
那如何到達更遠的目標地址呢?我們可以使用兩次的 J 型指令,像接力一樣跳兩次
另外一種則是間接轉移,先將目標地址存放到暫存器中,也就是 jr rs 這種
只要使用 R 型指令,另外多設定一種 funct code 就可以實現了
以上就是 MIPS 指令系統的核心概念,也是 RISC 的經典設計架構
雖說精簡,但是整理起來也有六篇,下一篇將開始 x86 體系的介紹
相較之下介紹篇幅應該會花得更多吧 XD