Сначала я читаю весь файл и сохраняю его в массив, называемый буфером. Затем я получаю строку за строкой из буфера, затем сохраняю ее в массив с именем temp. После печати временного массива, я возвращаюсь, чтобы получить элемент из буфера, сохраняемый в temp. Я получаю сообщение об ошибке в строке 35, поэтому я думаю, что что-то пошло не так
#My D:\\source.txt file is:
#1+2+3
#4+3+4+5+6
#5+4
.data
fin: .asciiz "D:\\source.txt" # filename for input
buffer: .space 1024
temp: .space 100
newLine: .asciiz "\n"
.text
.globl main
main:
#open file
li $v0,13
la $a0,fin
li $a1,0
syscall
move $s0,$v0
#read file
li $v0,14
move $a0,$s0
la $a1,buffer
la $a2,1024
syscall
#handle
addi $t2,$0,0 #counter
addi $t3,$0,0
loop:
lb $t1,buffer($t2) #load an element in buffer to $t1
sb $t1,temp($t3) #save an element from $t1 to temp
add $t2,$t2,1 #counter++
add $t3,$t3,1 #counter++
addi $ra,$zero,35 #save command at line 35 to $ra
beq $t1,'\n',print #if $t2='\n', print temp
bne $t1,'\0',loop #if $t1 != '\0', loop
#print temp
print:
li $t3,0 #set $t3 as 0
li $v0, 4 #print temp
la $a0, temp
syscall
li $v0, 4 #print newLine
la $a0, newLine
syscall
jr $ra #run command at $ra
#close file
li $v0,16
move $a0,$s0
syscall
exit:
li $v0,10
syscall