1
キーボードから挿入され、スタックに保存された倍数の合計を取得する方法はありますか? これは私にこの出力を与え、私のコードですが、: 0.0MIPS入力の倍数の合計
load_number:
move $t0, $a0
move $t1, $a1
#counter
li $t2,0
while:
beq $t2, $t1, end_load
#read a double
li $v0, 7
syscall
#save in the stack
swc1 $f0, ($t0)
addi $t0, $t0, -4
addi $t2, $t2, 1
#Repeat
j while
............
while_sum:
beq $t2, $t1, end_sum
lwc1 $f2, ($t0)
add.d $f4, $f4, $f2
addi $t0, $t0, 4
addi $t2, $t2, 1
j while_sum
end_sum:
li $v0, 3
mov.d $f12, $f4
syscall
マイケルと答えに感謝します。私はスタックのバイト数を調整しましたが、ldc1またはsdc1を使用すると火星は私にこのエラーを与えます: ランタイム例外0x00400080:アドレスがダブルワード境界0x7fffefec ldc1またはsdc1の行にある0x35fffefec に揃えられていません。 lwc1またはswc1を使用した場合、私はこれを取得します:1.273197475E-314 3.20 + 3.20を追加すれば助けてくれますか? – Marco
次に、アドレスがダブルワードアライメントされていることを確認する必要があります。アドレスが元々どこから来たのかは不明です。 '.data'セクションで宣言されている配列の場合は、' .align 3'を先行する必要があります。 – Michael
キーボードから数字を尋ねて8を掛けて、スタックの結果をすべて.textセクション。アドレスは関数によって渡されます---> $ a0、$ spのように移動します。 – Marco