0

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値を出力できない理由を知っている人はいますか? 私の倍数がそのようにエンコードされている理由がわかりません。

4

0 に答える 0