double配列を印刷したいのですが、これは私の単純なコードです:
.data
myarraydouble: .space 24
newline: .asciiz "\n"
.text
main:
addi $t0,$zero,0 #set counter to 0
li.d $f2, 1.393701 #$f2 = 1.393701
li.d $f4, 2.393701 #$f4 = 2.393701
li.d $f6, 3.393701 #$f6 = 3.393701
addi $t2,$zero,0 #reset base address
#store doubles into array
swc1 $f2, myarraydouble($t2)
addi $t2,$t2,8
swc1 $f4, myarraydouble($t2)
addi $t2,$t2,8
swc1 $f6, myarraydouble($t2)
#clear $t2 to 0
addi $t2, $zero,0
while:
beq $t0,3, exit
lwc1 $f8,myarraydouble($t2) #load register from RAM
addi $t2, $t2, 8 #base address +4
#print current double
li $v0,3
mov.d $f12,$f8
syscall
#print new line
li $v0,4
la $a0,newline
syscall
addi $t0, $t0, 1 #counter +1
j while
exit:
li $v0,10
syscall
double値を出力できない理由を知っている人はいますか? 私の倍数がそのようにエンコードされている理由がわかりません。