[理工] [計組]-MIPS

看板Grad-ProbAsk作者 (serflygod)時間15年前 (2010/10/05 16:04), 編輯推噓3(305)
留言8則, 3人參與, 最新討論串5/7 (看更多)
http://i215.photobucket.com/albums/cc91/serflygod/040778.jpg
我想問的地方是 在loop那一段 add $t1,$t1,$t0 addi $t0,$t0,1 slt $t8,$t0,$t2 bne $t8,$zero,loop 能不能改成 slt $t8,$t0,$t2 bne $t8,$zero,loop add $t1,$t1,$t0 addi $t0,$t0,1 自己算,書上解答,$t0可以加到20就跳出迴圈 自己的寫法,應該也是$t0加到20就跳出迴圈 但對於程式苦手 想po上來跟大家討論一下 懇請指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.224.135.142

10/05 17:08, , 1F
本題可以, 而且理論上是你的code較為正確
10/05 17:08, 1F

10/05 17:09, , 2F
因為for loop在每次執行loop body前都會先判斷條件
10/05 17:09, 2F

10/05 17:10, , 3F
所以for(i=0;i<-1;++i) ; 也就不會進入function body
10/05 17:10, 3F

10/05 17:10, , 4F
但是解答的寫法是do{}while(); 的寫法
10/05 17:10, 4F

10/05 17:11, , 5F
不過本題 兩種程式碼出來的結果都一樣就是了
10/05 17:11, 5F

10/05 17:46, , 6F
咦? 那"loop:"要放在?
10/05 17:46, 6F

10/05 17:56, , 7F
囧,拍謝~ bne 要改成beq,並且多exit,多加一行jump
10/05 17:56, 7F

10/06 11:04, , 8F
感謝解答
10/06 11:04, 8F
文章代碼(AID): #1CgjmYZX (Grad-ProbAsk)
文章代碼(AID): #1CgjmYZX (Grad-ProbAsk)