[理工] 計組p64

看板Grad-ProbAsk作者 (yoooooz)時間4年前 (2019/10/12 16:12), 編輯推噓0(0014)
留言14則, 5人參與, 4年前最新討論串1/1
請問一下 為什麼當n==0時執行完return後,不是會跳到lw那邊嗎,那怎麼lw完之後就沒做任何事情了 不用相加完之後再jr $ra嗎? https://i.imgur.com/ubv8Fnk.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.29.120 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1570867957.A.EB2.html

10/12 17:20, 4年前 , 1F
lw完繼續往下啊 return只是label而已
10/12 17:20, 1F

10/12 17:43, 4年前 , 2F
lw完下面不是就到return: 了嗎,return 不是上面beq成立才
10/12 17:43, 2F

10/12 17:43, 4年前 , 3F
會執行喔?
10/12 17:43, 3F

10/12 17:59, 4年前 , 4F
沒 預設是按順序執行
10/12 17:59, 4F

10/12 18:00, 4年前 , 5F
就像是你寫 C code 中間 beq 只是一行 if
10/12 18:00, 5F

10/12 18:00, 4年前 , 6F
if 以外的都按照一行一行往下走
10/12 18:00, 6F

10/12 19:07, 4年前 , 7F
所以lw執行完後就會執行return的部分
10/12 19:07, 7F

10/12 19:08, 4年前 , 8F
只是beq成立的話先做return在跳回去囉?
10/12 19:08, 8F

10/12 19:17, 4年前 , 9F
都沒有要跳回去
10/12 19:17, 9F

10/12 20:17, 4年前 , 10F
跳過去就是跳過去了 你不動pc他就是一直+4下去
10/12 20:17, 10F

10/12 22:43, 4年前 , 11F
所以不管beq那行,只要做到lw $a0, 0($sp)之後
10/12 22:43, 11F

10/12 22:44, 4年前 , 12F
就會接著做return下面那3行嗎
10/12 22:44, 12F

10/12 23:00, 4年前 , 13F
是 除非你遇到明確會跳的指令 符合條件才會跳躍
10/12 23:00, 13F

10/12 23:45, 4年前 , 14F
好的謝謝各位
10/12 23:45, 14F
文章代碼(AID): #1TeOhrwo (Grad-ProbAsk)