看板 Grad-ProbAsk 關於我們 聯絡資訊
書上說 pc最高四位+後面28位可以組成要跳的位址(byte) 是不是不能往位址退位或進位的方向跳? 跳躍指令在xx10+28位 不能跳回xx01+28位 反之 xx01+28位也不能跳到xx10+28嗎? 還是說通常指令都不會超過64,000,000行(256MB) 所以之後的就不重要了。 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.25.205 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1458748752.A.BE4.html
OppOops: (0000 ~ 1111) + 28位都只能在各自的位址範圍內跳 03/24 00:05
OppOops: 不能互跨, 這是mips jump指令的規則 03/24 00:06
anoymouse: 那指令剛好有跨要靠其他定址法解決?這情況的判斷是編譯 03/24 08:15
anoymouse: 器還是人? 03/24 08:15
OppOops: 當然是靠編譯器解決, 要跨就先用branch, 才有辦法 03/24 09:57
OppOops: 不過編譯器大部分是 virtual address 03/24 09:59
OppOops: 實際有跨可能是靠MMU/OS/CPU這類的狀況跨過去的 03/24 10:00
OppOops: 看你的硬體架構而定, 如果是課本那種簡單的mips 03/24 10:01
OppOops: 就沒有virtual address這種事情, 那誰解決都沒有差別 03/24 10:01
OppOops: 反正CPU一定照指令來執行程式 03/24 10:02
anoymouse: 感謝解答! 03/24 16:56