Ошибка при инициализации массива в мипах - PullRequest
0 голосов
/ 27 октября 2018

Код:

# 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, $4
  addi $s0, $s0, -1
  bne $0, $s0, loop

  sw $s1, SUM

  li $v0, 10
  syscall 

  .end

Ошибка

Исключение произошло на ПК = 0x0040003c
Арифметическое переполнение spim: (синтаксический анализатор) синтаксическая ошибка в строке 7 файла

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

.word 2,4,6,8,10 # массив целых чисел

пожалуйста, помогите мне с инициализацией этого массива

Заранее спасибо

1 Ответ

0 голосов
/ 02 ноября 2018

У вас есть несколько ошибок.

  1. массив не должен иметь запятых между элементами

  2. возможно, код из-за ошибки, но кавычкив строке указаны неверные значения: "

  3. $ s1, $ s1, $ zero (3-я строка main) не является допустимой инструкцией - вы хотите установить s1 в 0.

  4. начало цикла: lw $ t1, 0 ​​(# t0) недопустимо, # следует $

  5. и $ 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 $0, $s0, loop

  sw $s1, SUM

  li $v0, 10
  syscall

Вам все еще нужно добавить свои печатные заявления и т. Д., Если они необходимы в рамках упражнения.

...