0
.data
    time:       .float 310.4, 390.8
    miles:      .float 12.0, 96.2

.text  
    li $t0, 3           #terminating value
    li $t1, 4           #byte shifting 
    li $t2, 1           #i increments by 1  
    la $a1, time        # put address of time into $a1
    la $a2, miles       # put address of miles into $a2     
    l.s $f1, ($a1)
    l.s $f2, ($a2)

    mul.s $f3, $f1, $f2

    li $v0, 2           
    l.s $f12, __  <------- here????         
    syscall

f3 を印刷するにはどうすればよいですか? これはイライラし始めています。$a1 または $a2 を出力してシフトすることはできますが、いくつかの数値を掛けて出力する必要があります....ありがとう!

4

1 に答える 1

5

背後にある理論的根拠を完成させるための答えは次のとおりです。

  • メモリからl.s $f12, ($a1)浮動小数点値をロードする場合に使用する必要があります
  • 印刷したい浮動小数点数をコプロセッサレジスタに既に持っている場合(ただし、syscall 2で使用されているものではない)、命令を使用し$f12て、値を持つ浮動小数点レジスタから内容を移動する必要があります$f12mov.s

したがって、あなたの例では次のようにします。

  li $v0, 2
  mov.s $f12, $f3   # Move contents of register $f3 to register $f12
  syscall
于 2013-04-01T18:26:20.180 に答える