[理工] [計組] branch指令可跳的範圍

看板Grad-ProbAsk作者 (阿慶老哥)時間10年前 (2015/12/25 18:20), 10年前編輯推噓8(8013)
留言21則, 8人參與, 最新討論串1/1
【問題一】 題目:http://imgur.com/zpjJ1e3
第二小題的第一問 解答:http://imgur.com/SwmsTXC
想請問的是解答上寫Range是0x0002 0600 to 0xFFFE 0604 這樣是代表branch指令可以往上跳到超過0x0000 0000? 0x0000 0604 -> 0x0000 0000 -> 0xFFFE 0604 如果是這樣的話想再問 【問題二】 交大101計組 Section II 第一題的(b)選項 題目:http://imgur.com/tZJu9Ee
答案是:No 可以往上跳超過0x0000 0000的話 它的Range應該是0x0002 0000 to 0xFFFE 0004 這樣的話不就可以經過0xFFFF FF00了? 0x0000 0000 -> 0xFFFF FF00 -> 0xFFFE 0004 這裡一直不是很懂 還請幫忙指正 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.50.29 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1451038815.A.DA4.html

12/25 21:11, , 1F
因為記憶體不是圓形啊XD
12/25 21:11, 1F

12/25 21:11, , 2F
你不能直接跳到記憶體的另一邊
12/25 21:11, 2F

12/25 22:12, , 3F
原來我之前搞錯 我原本以為記憶體是方的 thx
12/25 22:12, 3F

12/25 22:17, , 4F
騙人 明明就是三角形 >_<
12/25 22:17, 4F

12/25 22:45, , 5F
就有circular queue的感覺 所以說第一個那個問題它往上
12/25 22:45, 5F

12/25 22:45, , 6F
只會到0x0000 0000囉?
12/25 22:45, 6F
我剛剛想到了這張圖 http://imgur.com/dn2onWa
所以說第一個問題他的Range是否只有 0x0000 0000-0x0002 0600? ※ 編輯: saqwedcxz (220.136.240.145), 12/25/2015 22:57:39 ※ 編輯: saqwedcxz (220.136.240.145), 12/25/2015 22:58:54

12/25 23:23, , 7F
我看比較像綠豆糕
12/25 23:23, 7F

12/26 00:27, , 8F
大家在幹嘛哈哈 沒錯最上面只會到0x0....0
12/26 00:27, 8F

12/26 12:56, , 9F
那我知道了 謝謝大家
12/26 12:56, 9F

12/26 21:35, , 10F
有人今年也有上張凡老師的正課班嗎,?他上課的時候把1
12/26 21:35, 10F

12/26 21:35, , 11F
01交大那題答案改成Yes了耶==所以到底是?!
12/26 21:35, 11F

12/26 21:59, , 12F
張凡題庫是給YES 我想想應該是可以跳到0xFFFF FF00
12/26 21:59, 12F

12/26 22:00, , 13F
因為Branch target的datapath是經過加法器和PC+4相加
12/26 22:00, 13F

12/26 22:00, , 14F
加法器的話 2's comp應該是可以加到負的地方
12/26 22:00, 14F

12/26 22:05, , 15F
哇賽...所以我真的完全搞錯了 我本來以為這部分會被
12/26 22:05, 15F

12/26 22:06, , 16F
限制 但是想想如果限制住那這記憶體變成上下兩部分
12/26 22:06, 16F

12/26 22:06, , 17F
就超難用的... 抱歉原po 提供錯誤觀念 囧
12/26 22:06, 17F
不會啦 有搞懂比較重要哈哈

12/27 00:26, , 18F
branch可以跳的範圍是下一個指令(pc+4)往上pc+4-20000
12/27 00:26, 18F

12/27 00:26, , 19F
(hex) 往下 pc+4+1FFFC ,所以(b)拿4-20000後得到FFFDFF
12/27 00:26, 19F

12/27 00:26, , 20F
F4,可以涵蓋到FFFFFF00
12/27 00:26, 20F
感謝提醒 之前忘記PC+4了 不過如果說用2'sc 做運算 4-20000 應該是會得到FFFE0004吧? 再問一下 位址的表示法是2's complement的嗎? 所以做加減的運算就是用2'sc的方式來做 ※ 編輯: saqwedcxz (220.136.245.137), 12/27/2015 15:24:45

12/27 19:04, , 21F
應該是FFFE0004
12/27 19:04, 21F
文章代碼(AID): #1MVHXVsa (Grad-ProbAsk)