我需要从用户那里获取一个浮点数组的输入然后打印它。我尝试了以下代码: -
.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.请帮助!!!
答案 0 :(得分:1)
我猜您使用,
作为小数点而不是.
。
E.g。:而不是输入3.14159
,您输入的3,14159
至少不是MARS所预期的。
除此之外,我认为代码中的行addi $s1,$s1,1
应为addi $s2,$s2,1
,因为您似乎正在使用$s2
来保存索引计数器的当前值。