MIPS“对齐地址,例外5”错误(MIPS “Unaligned address, Exceptio

2019-10-17 13:22发布

我使用SPIM MIPS模拟器一个小白。
我得到了标题X 26倍的错误,当我尝试初始化的26个字的排列为0。我隔离是存储字操作问题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

Answer 1:

确保地址theArray对齐到32位字边界。 如果你必须通过程序的能力,以单步可以检查地址,和检查的价值$s3后的第一个la指令。

见这个wiki有关对齐文档和.align可用于强制对齐的指令。



文章来源: MIPS “Unaligned address, Exception 5” error