推 mirror0227: 10+4? 10/31 11:26
推 frank010180: 在每個指令執行IF的時候 PC就先+4了 10/31 11:34
→ frank010180: 所以對branch做加總後會準確的到該目標位址 10/31 11:36
→ frank010180: 可以trace一下電路圖會更了解 10/31 11:37
→ frank010180: 以上有誤請指證 10/31 11:37
推 bmpss92196: 目前位置是10,下一個是42,pc不就該放42 10/31 13:00
推 meokay: 等到42執行時,才會指到46 10/31 14:13
→ o5739201: Beq 指令位址是10 11/01 19:58
→ o5739201: 而讀到beq時pc已經+4了 變14 11/01 19:58
→ o5739201: 這時如果跳 就往 14+7*4=42 地址抓指令 11/01 19:59
→ o5739201: 而妳說的46是42指令在ID階段pc+4(也就是跳躍目的的下一 11/01 19:59
→ o5739201: 個指令) 11/01 19:59
→ befdawn: 謝謝大家 所以是42 被 taken 只是被讀到而已,還沒被執 11/03 19:18
→ befdawn: 行嗎? 11/03 19:18
→ befdawn: 我再看了一次,原來是branch 讀取時若被接受,PC直接跳 11/03 22:01
→ befdawn: 到42。謝謝樓上大大們的解釋 11/03 22:01