1

我是一个使用 SPIM MIPS 模拟器的菜鸟。
当我尝试将 26 个单词的数组初始化为 0 时,我在 title 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
4

1 回答 1

3

确保 的地址theArray与 32 位字边界对齐。如果您有能力单步执行程序,则可以检查地址,并检查$s3第一la条指令之后的值。

有关对齐的文档以及可用于强制对齐的指令,请参阅此 wiki 。.align

于 2013-01-03T10:32:13.383 回答