[問題] MIPS 矩陣計算

看板ASM (組合語言)作者 (H28)時間10年前 (2014/11/23 16:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
板上的神人大大們好 小弟第一次在此版發言如有冒犯請多見諒 最近在準備研究所考試中在題目中看到一題不太會解 Q:假設 $s0 存放變數 c的值, $s1 存放變數 d的值 , 而 $s6 存放 整數陣列 A 的 記憶體位置( 即 &A[0] ) , $s7 存放 整數陣列 B 的記憶體位置 (即 &B[0]) 將以下C程式碼轉換成MIPS: c = d - A[B[2]]; 小弟我的想法是: lw $t0, 8($s7) # 把陣列 B[2]的值存到 $t0 add $t1, $t0, $t0 add $t2, $t1, $t1 # 將$t0的值*4存到$t2裡 ** lw $t3, $t2($s6) # 將A[B[2]]的值存進$t3裡 sub $s0,$s1,$t3 # c = d - $t3 可是lw是I-type不可能在 lw $t3, $t2($s6) 中間放$t2 爬了板上的文章後看到一篇 [問題] 有個 C 程式碼 轉 MIPS 裡有個類似的問題(幾乎一模一樣) 裡面有個不知從何而來的答案(已把參數改成我這題) lw $t0,8($s7) @ lw $s0,0($t0) # 看不懂 lw $s0,$s1,$s0 發現我還是看不懂啊,而我看不懂的地方跟原PO一樣 想請問 有關我看不懂的那行代表什麼 在看過訪間參考書與同樣要考試的友人F討論出一個答案 lw $t0, 8($s7) # 把陣列 B[2]的值存到 $t0 add $t1, $t0, $t0 add $t2, $t1, $t1 # 將$t0的值*4存到$t2裡 add $t2, $s6, $t2 # 將A[B[2]]的address存進$t2裡 lw $t3, 0($t2) # 將A[B[2]]的值存進$t3裡 sub $s0,$s1,$t3 # c = d - $t3 不知道這樣的答案是否算是正確呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.50.71 ※ 文章網址: http://www.ptt.cc/bbs/ASM/M.1416729698.A.55D.html
文章代碼(AID): #1KSPHYLT (ASM)
文章代碼(AID): #1KSPHYLT (ASM)