在 mips 中初始化数组时显示错误

Error shown in initialization of array in mips

密码是:

# first Spim program

  .data                 #Global Data here

N: .word 5  #loop count
X: .word 2,4,6,8,10 #array of integers
SUM: .word 0    #location of final sum
str : .asciiz "The sum of the array is ="

  .text
  .globl main   #main defined globally

main: 
  lw $s0, N       #Loop count N(initially must be zero) loaded in $s0
  la $t0,X      #Address of X into t0
  $s1, $s1, $zero   #logical and with zero results in zero

loop:
  lw $t1, 0(#t0)
  add $s1,$s1,$t1
  addi $t0, $t0, 
  addi $s0, $s0, -1
  bne [=10=], $s0, loop

  sw $s1, SUM

  li $v0, 10
  syscall 

  .end

错误是

异常发生在 PC=0x0040003c
算术溢出 spim:文件

第 7 行的(解析器)语法错误

/home/divyanshu/Documents/QtSpim_Codes_and_stuff/First Qtspim program.txt

.word 2,4,6,8,10 #整数数组

请帮助我如何初始化该数组

提前致谢

您有一些错误。

  1. 数组元素之间不应有逗号

  2. 可能是代码过去的问题,但字符串上的引号不正确,应该是“

  3. $s1, $s1, $zero(main 的第 3 行)不是有效指令 - 您希望将 s1 设置为 0。

  4. 循环开始:lw $t1, 0(#t0) 无效,# 应该 $

  5. addi $t0, $t0, $4: 意思是t0 = t0 + a4 你想加4,所以把$去掉,当作数字。

为我工作:

   .data #Global Data here

N: .word 5 #loop count
X: .word 2 4 6 8 10 #array of integers
SUM: .word 0 #location of final sum
str : .asciiz "The sum of the array is ="

   .text
   .globl main #main defined globally
main: 
   lw $s0, N #Loop count N(initially must be zero) loaded in $s0
   la $t0,X #Address of X into t0
   move $s1, $zero

loop:
  lw $t1, 0($t0)
  add $s1,$s1,$t1
  addi $t0, $t0, 4
  addi $s0, $s0, -1

  bne [=10=], $s0, loop

  sw $s1, SUM

  li $v0, 10
  syscall

如果练习需要,您仍然需要添加打印语句等。