[理工] 計組 program counter

看板Grad-ProbAsk作者 (蜜蜂P助)時間7年前 (2018/11/03 21:57), 編輯推噓2(206)
留言8則, 2人參與, 7年前最新討論串1/1
https://i.imgur.com/P1DuBsy.jpg
https://i.imgur.com/WpQse79.jpg
各位大大好, 請問這題第三行解答 goto 的 address 部分 當 bne 被執行的時候,pc 不是已經在下一行(+4) 了?也就是要 goto 的 address 應 該是 pc + 100? 我的想法是 [bne 的 address] + 4 + 100 才是要跳的 address,不知道正不正確 謝謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.254.162 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1541253446.A.4F9.html

11/03 22:24, 7年前 , 1F
你想的沒有錯 PC+4就是指下一行
11/03 22:24, 1F

11/03 22:27, 7年前 , 2F
你執行這個指令的時候PC在beq
11/03 22:27, 2F

11/03 22:27, 7年前 , 3F
下個clock變成PC+4 然後會加上imm16
11/03 22:27, 3F

11/03 22:27, 7年前 , 4F
所以是(PC+4) + 100
11/03 22:27, 4F

11/03 22:27, 7年前 , 5F
如果要跳的話下個clock才會進ALU算目的位址
11/03 22:27, 5F

11/04 19:48, 7年前 , 6F
所以是剛load到這行指令時,pc還在這一行,所以就是加4
11/04 19:48, 6F

11/04 19:48, 7年前 , 7F
就好了
11/04 19:48, 7F

11/04 19:48, 7年前 , 8F
十分謝謝s大
11/04 19:48, 8F
文章代碼(AID): #1RtQb6Jv (Grad-ProbAsk)