MIPS - ошибка при печати данных в массив

Поэтому я пытаюсь поместить числа 1-200 в массив. Массив находится внизу кода. Когда я пытаюсь напечатать это, я получаю ошибки, может кто-нибудь заметить ошибку, когда я введу цифры? Числа в массиве должны принимать значения от 1 до 200, поэтому $t3 увеличивается каждый раз. Любой совет будет принята с благодарностью.

main: 
 .text
  lw $t0, numbers_size # loads the size of the array into the loop
  la $t1, numbers   # $t1 gets the number array
  li $t2, 0    # loop control variable
  li $t3, 1    # value stored inside numbers
  
  
  li   $v0, 4
  la   $a0, test_2 # print before loop 
  syscall
  
number_for:
  bge  $t2, $t0, end_for
  sw  $t3, ($t1)
  
  add $t1, $t1, 4
  add $t2, $t2, 1
  add $t3, $t3, 1  

  j number_for
end_for:
  lw $t0, numbers_size # loads the size of the array into the loop
  la $t1, numbers   # $t1 gets the number array
  li $t2, 0    # loop control variable
  
  j print_numbers


.data
test: .asciiz "Printing numbers:"
test_2: .asciiz "Before loop:"


numbers:
 .word 0:200
numbers_size:
 .word 200

1 ответ

Решение

Это может помочь вам:

.text
main:   
    lw $t0, numbers_size    # loads the size of the array into the loop
    la $t1, numbers     # $t1 gets the number array
    li $t2, 0           # loop control variable
    li $t3, 1           # value stored inside numbers

    li $v0, 4
    la $a0, test_2  # print before loop 
    syscall
    j number_for
    li $v0, 10
    syscall


number_for:
    bge $t2, $t0 end_for
    sw  $t3, ($t1)

    addi $t1, $t1, 4
    addi $t2, $t2, 1
    addi $t3, $t3, 1        

    b number_for

end_for:
    lw $t0, numbers_size    # loads the size of the array into the loop
    li $t1, 0           
    li $t2, 0           # loop control variable

buc:
    bge $t2, $t0 end
    lw $a0, numbers($t1) # Printing integer from array
    li $v0,1
    syscall

    la $a0, space   #load a space:  " "
    li $v0, 4       #print string               
    syscall

    addi $t1, $t1, 4
    addi $t2, $t2, 1
    b buc       

end:
    jr $ra

.data
test: .asciiz "Printing numbers:"
test_2: .asciiz "Before loop:\n"
space: .asciiz " "
numbers_size: 
    .word 200
numbers:
    .word 0:200
Другие вопросы по тегам