作者yoz4ni (yoooooz)
看板Grad-ProbAsk
标题[理工] 计组p64
时间Sat Oct 12 16:12:35 2019
请问一下
为什麽当n==0时执行完return後,不是会跳到lw那边吗,那怎麽lw完之後就没做任何事情了
不用相加完之後再jr $ra吗?
https://i.imgur.com/ubv8Fnk.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.173.29.120 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1570867957.A.EB2.html
1F:→ mistel: lw完继续往下啊 return只是label而已 10/12 17:20
2F:→ yoz4ni: lw完下面不是就到return: 了吗,return 不是上面beq成立才 10/12 17:43
3F:→ yoz4ni: 会执行喔? 10/12 17:43
4F:→ ekids1234: 没 预设是按顺序执行 10/12 17:59
5F:→ ekids1234: 就像是你写 C code 中间 beq 只是一行 if 10/12 18:00
6F:→ ekids1234: if 以外的都按照一行一行往下走 10/12 18:00
7F:→ yoz4ni: 所以lw执行完後就会执行return的部分 10/12 19:07
8F:→ yoz4ni: 只是beq成立的话先做return在跳回去罗? 10/12 19:08
9F:→ Ricestone: 都没有要跳回去 10/12 19:17
10F:→ DLHZ: 跳过去就是跳过去了 你不动pc他就是一直+4下去 10/12 20:17
11F:→ yoz4ni: 所以不管beq那行,只要做到lw $a0, 0($sp)之後 10/12 22:43
12F:→ yoz4ni: 就会接着做return下面那3行吗 10/12 22:44
13F:→ ekids1234: 是 除非你遇到明确会跳的指令 符合条件才会跳跃 10/12 23:00
14F:→ yoz4ni: 好的谢谢各位 10/12 23:45