mips循环错误

时间:2017-08-18 08:58:36

标签: arrays assembly mips matrix-multiplication

有人可以告诉我这个问题吗?

`#initializing indexes i,j,k
addi $s0, $zero, 0
addi $s1, $zero, 0
addi $s2, $zero, 0

addi $sp, $sp, -16
sw $s0, 0($sp)
sw $s1, 4($sp)
sw $s2, 8($sp)


while1:
bgt $s0,2,exit1


 while2:
 sw $ra, 12($sp)
 bgt $s1,2,exit2
 addi $s1,$s1,1


   while3:
   sw $ra, 12($sp)
   bgt $s2,2,exit3

   mul $t0,$s0,$s0
   add $t1,$t0,$s1
   sll $t2,$t1,3
   add $t3,$t2,$a0
   add $t4,$t2,$a1
   add $t5,$t2,$a2
   ldc1 $f4, ($t3)
   ldc1 $f6, ($t4)
   ldc1 $f8, ($t5)
   mul.d $f8,$f6,$f4
   sdc1 $f8, ($t5)



   addi $s2,$s2,1
   j while3
 addi $s1,$s1,1
 j while2


addi $s0,$s0,1
j while1


exit1:
lw $s0, 0($sp)
addi $sp, $sp, 16
jr $ra

exit2:
lw $s1, 4($sp)
jr $ra

exit3:
lw $s1, 8($sp)
jr $ra

addi $t2,$zero,0

while:
beq $t2,24,exit
ldc1 $f2, 0($a2)
li $v0, 3
add.d $f12,$f2,$f0
syscall
addi $t2,$t2,8

li $v0, 10
syscall

它告诉我在PC = 0x000000时发生异常,在文本中读取错误地址:0x0000000并尝试在0x80000180执行非指令。 我想要做的是将矩阵A和B相乘并将结果存储在第三个矩阵C中。矩阵A,B和C位于地址$ a0,$ a1和$ a2

0 个答案:

没有答案