推 ken52011219: 主要的差異是Sll 左移兩bit 使值變為address 10/27 22:11
→ ken52011219: 而不再只是單純為 兩值相加 實際應為 A[i-j+0] 10/27 22:13
推 kyuudonut: 1. address 當然可以相加 他只是暫存器裡面的值 10/27 22:16
→ kyuudonut: 2. "$s3 = A[0]" 這句表達的是 $s3存的是A[0] 10/27 22:17
→ kyuudonut: 絕對不是A[] ... "$s3 = &A[0]" 才是表達base addr. 10/27 22:18
→ ericzx70116: 感謝兩位大大幫忙>< 我瞭解了 10/28 11:28
推 opu456: $s6裡存的是A的address吧 怎麼會用lw 還是我理解錯題目意 10/28 22:22
→ opu456: 思? 10/28 22:22
→ opu456: Assume that the base address of the arrays A and B are 10/28 22:22
→ opu456: in registers $s6 and$7, 10/28 22:22
推 opu456: A[0]+(i-j)*4 怎麼會是A[i-j]的address 10/28 22:26
推 opu456: 應該要&A[0]+$t0才對吧? 還是我觀念錯了?orz 10/28 22:28
→ ken52011219: 很久沒寫計組 有點吃力 但大致上如我圖上所說 應該是 10/28 23:37
→ ken52011219: 沒有寫錯啦XDD 10/28 23:37
推 PTTleader: ken圖中 lw $t1 0($s6)//$t1 = A[0]之address 這句話 10/29 01:45
→ PTTleader: 是對的嗎? $s6 照題目說的應該就是A的base address了吧 10/29 01:46
→ ken52011219: Assemble language 可以有各式各樣的方法 去寫出 只 10/29 08:35
→ ken52011219: 端看要寫成簡單和複雜 10/29 08:35
→ ken52011219: 但我是蠻常看到使用lw Reg 0(?)的技巧@@ 10/29 08:40
→ ken52011219: 哦 我好像回錯意思了 但撇開掉上一句 我覺得兩者皆可 10/29 08:46
→ ken52011219: 吧 10/29 08:46
推 PTTleader: 就MIPS來說 10/29 11:11
→ PTTleader: lw $t1 0($s6) 這句是$t1 = A[0] 的意思吧... 10/29 11:11
→ PTTleader: 這樣根本不對啊 10/29 11:12
推 ken52011219: 你說的沒錯 這部分不用加這段才是正確的 10/29 11:43
→ ken52011219: 是我把lw 跟la的用途搞混了 QQ 抱歉 10/29 11:44
推 ken52011219: Lw 如前兩位所說的是指 A[address]內的值 10/29 11:47
→ ken52011219: 感謝糾正 ! 10/29 13:04