Я получаю странную ошибку, когда пытаюсь установить регистр с плавающей точкой в метку с плавающей точкой. Я в основном пытаюсь вычислить среднее значение отсортированного массива, который я создал, который имеет 5 значений. Я складываю пять значений вместе, а затем пытаюсь разделить число с плавающей запятой на 5 с помощью регистра $ f9.
Проблема в том, что всякий раз, когда вызывается инструкция l.s, регистр $ f9 устанавливается на последнее значение в моем массиве, что приводит к ошибкам в вычислении среднего значения.
.data
#STACK
floatArray: .float 0.0 : 4
five: .float 5
...
getAverage:
#GET ALL FLOATS
la $s0, floatArray #Set $s0 to start of array
l.s $f4, 0($s0) #Get float from array
l.s $f5, 4($s0) #Get float from array
l.s $f6, 8($s0) #Get float from array
l.s $f7, 12($s0) #Get float from array
l.s $f8, 16($s0) #Get float from array
#ADD ALL FLOATS AND DIVIDE
add.s $f5, $f5, $f4
add.s $f6, $f6, $f5
add.s $f7, $f7, $f6
add.s $f8, $f8, $f7
l.s $f9, five #Get float from label
div.s $f12,$f8, $f9
При l.s, когда я отлаживаю, регистр $ f9 устанавливается на последний float в массиве вместо float 5, который я установил в метке.