2013-02-18 57 views
0
.data 
string1:.asciiz "Enter number\n" 
matrix:.space 100 
i: .word 0 
k: .word 0 
.text 
main: 
lw $t1,i 
lw $t2,k 
la $s0,matrix 
jal Build_matrix 
j exit 
Build_matrix: 
li $t3,25 
li $t4,0 
li $a1,0 
Scanning: 
bge $t1,$t3,Return #if i>=25,stop 
li $v0,4 
la $a0,string1 
syscall 
add $t4,$t2,$t2  #2j 
add $t4,$t4,$t4  #4j 
add $a1,$s0,$t4 
li $v0,5 
syscall 
sw $v0,0($a1) 
addi $t1,$t1,1 
addi $t2,$t2,1 
j Scanning 
Return: 
jr $ra 
    #**** End of Build_matrix method **** 
exit: 

這是採取25個數字作爲輸入從用戶的代碼(問一個數的25倍),並把它們存儲在memory.There任何編譯時間errors.But在運行時期間,此MESSAGE-「異常5 [地址錯誤在商店中]發生並被忽略「每次顯示輸入數字後顯示?我的錯誤是什麼?謝謝如何解決MIPS中的異常5(存儲Word)?

回答

1

您面臨的問題是矩陣不是字對齊的,這是sw需要的說明。 你有矩陣標籤後添加.align 2指令:

matrix: 
    .align 2  # ensure matrix is properly aligned 
    .space 100 
+0

非常感謝@gusbro我當時堅持這樣3小時... – srk 2013-02-18 15:59:59