我是使用SPIM MIPS模拟器的菜鸟
当我尝试将26个单词的数组初始化为0时,我在标题X中得到错误26次。我已将问题隔离为存储字操作sw $t0, 0($s3)
,但不知道我做错了什么。
代码:
.data
theArray: .space 104
theArraySz: .word 26
.text
.globl main
main:
move $t0, $zero
la $s3, theArray
lw $s4, theArraySz
add $t2, $zero
initLoop:
beq $t2, $s4, initEnd
sw $t0, 0($s3)
addi $s3, $s3, 4
addi $t2, $t2, 1
j initLoop
initEnd:
jr $ra
答案 0 :(得分:2)
确保theArray
的地址与32位字边界对齐。如果您能够单步执行该程序,则可以检查地址,并在第一次$s3
指令后检查la
的值。
有关对齐的文档以及可用于强制对齐的.align
指令,请参阅this wiki。