0
我試圖創建一個循環訪問數組以達到最終值0的程序。我的MIPS彙編程序有什麼問題?
在遍歷數組中的每個元素時,我需要將值增加2並將最終結果存儲在$ V0。 (我不知道如何做到這一點)
這裏是我到目前爲止的代碼:
.data
list: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
.text
li $s0, 0x10010000
increment:
beq $s0, $zero, EndLoop
lw $s1, 0($s2)
sw $s1, 0($s2)
la $s2, list
la $s1, list
lb $s2, 0($s1)
addi $s2, $s2, 2
sb $s2, 0($s1)
addi $s1, $s1, 1
j increment
EndLoop:
我的問題是:
我總是收到一個錯誤說運行時異常,地址超出範圍。 任何想法爲什麼?
任何人都可以指出我正確的方向將最終值存儲在$ v0中嗎?
我用s0是因爲它在說明中指出:「在開始循環之前,您應該初始化$ s0來保存數組的基地址,$ s1保存數組的索引」 – user1902535 2013-02-22 01:51:51
代碼有問題,無關緊要說明中的內容。在調試器中運行它。實際上,這是你在問別人分析你的代碼或者爲你調試之前必須先做的事。 – 2013-02-22 01:55:28
我在調試器中運行過它,它告訴我第12行[lw $ a1,0($ a2)]有錯誤。這給出了我在主文章中提到的錯誤。 – user1902535 2013-02-22 02:10:48