在MIPS中对浮点数进行排序

时间:2015-11-15 23:57:18

标签: sorting floating-point mips

我们给出了一个项目,我们必须在MIPS中找到输入的浮点数的最小值,最大值和中值。我目前正试图按升序对数字进行排序,但运气不佳。我坚持认为地址超出范围的错误。这是我的代码,任何人都可以帮忙吗?

.data
 arr: .word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0
 end: .float 0.0
 low: .float 0

pro:  .asciiz "This Program will show the max, min,\nand median of the entered values.\nType 0.0 to end the program."
pro1: .asciiz "\nEnter a floating point value.\n"        

.text
li $v0, 4
la $a0, pro
syscall

index:
li   $s0,  0
li   $t0,  0
lwc1 $f11, end

main:
li $v0, 4
la $a0, pro1
syscall
li $v0, 6
syscall
la     $s0, arr
sw     $v0, arr
add    $s0, $s0, 4
c.eq.s $f0, $f11

loop1:
swc1   $f0, arr($s0)
addi   $s0, $s0, 4
swc1   $f1, arr($s0)
c.lt.s $f0, $f1
bc1t   min
j      main

min:
swc1 $f0, low
j    main

li $v0, 2
syscall

exit:
lwc1 $f12, low
li   $v0,  2
syscall
li   $v0, 10
syscall

1 个答案:

答案 0 :(得分:1)

您正在将arr的地址加载到$s0,然后使用$s0作为arrarr($s0))的偏移量。如果$s0包含您想要的数据地址,请使用($s0)