MIPSのアセンブリのプログラミについて質問です。 配列aの合計を返すプログラムをサブルーチンを用いて作成したのですがうまくいきません。よろしければどうすれば良いかを教えていただきたいですよろしくお願いします。 (自分的にはカウンター変数が動いていないような気がします。) .data a: .word 1, 2, 3, 4, 5, 6, 7, 8, 9 .text .globl main main: addi $sp, $sp, -4 sw $ra, 0($sp) la $a0, list li $a1, 9 #aの配列の要素数 jal sum #サブルーチンsumに行く move $a0, $v0 li $v0, 1 syscall lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra sum: addi $sp, $sp, -8 sw $ra, 0($sp) sw $t1, 4($sp) la $t0, a lw $s0, 0($t0) add $v0, $v0, $s0 addi $t1, $t1, 1 #カウンター addi $t0, $t0, 4 #配列のシフト bne $a1, $t1 sum #等しくないならsumに行く move $v0, $t1 lw $t1, 4($sp) lw $ra, 0($sp) addi $sp, $sp, 8 jr $ra
プログラミング