【问题标题】:Take user input and print a floating point array in MIPS获取用户输入并在 MIPS 中打印浮点数组
【发布时间】:2012-09-19 18:39:38
【问题描述】:

我需要从用户那里获取一个浮点数组的输入,然后打印它。我尝试了以下代码:-

.text
.globl main
main:

 la $s0,size
 lw $s1,0($s0)      # size in $s1
 ori $s2,$zero,0    # i in $s2
 la $s3,arr         # arr in $s3

 li $v0,4
 la $a0,msg1
 syscall

 L1:
  beq $s2,$s1,DONE
  li $v0,6
  syscall
  swc1 $f0,0($s3)
  j UPDATE

 UPDATE:
  addi $s3,$s3,4
  addi $s1,$s1,1
  j L1

 DONE:
  li $v0,4
  la $a0,msg2
  syscall

  la $t0,arr
  ori $t1,$zero,0
  L2:
   beq $t1,$s1,EXIT
   lwc1 $f20,0($t0)
   li $v0,2
   mov.s $f12,$f20
   syscall
   addi $t0,$t0,4
   addi $t1,$t1,1
   j L2

  EXIT:
  li $v0,10
  syscall
    .data
  size: .word  9
  arr:  .float  0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 
  msg1: .asciiz "Enter the elements:-"
  msg2: .asciiz "The elements are:-"  

当我给出输入时,系统调用 6 处出现运行时异常“无效浮点输入”。请帮助!!!

【问题讨论】:

  • 如果你有一个有用的答案,你应该接受它。单击 upvote/downvote 计数器下的复选标记。这会将问题标记为“已回答”,并为您提供少量声誉奖励。请参阅How do I ask 常见问题解答文章。

标签: mips


【解决方案1】:

我猜你使用, 作为小数点而不是.

例如:您输入的是3,14159,而不是输入3,14159,这至少是MARS所不期望的。

除此之外,我认为代码中的addi $s1,$s1,1 行应该是addi $s2,$s2,1,因为您似乎使用$s2 来保存索引计数器的当前值。

【讨论】:

  • 感谢您指出愚蠢的错误...它可以将 $s1 更改为 $s2。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-22
相关资源
最近更新 更多