Я хочу сделать следующую операцию:
0.1xA ^ 2 #A, представляющий целое число, в то время как 0.1 - число с плавающей запятой.
Мне не разрешено использовать инструкции умножения, деления или сдвига.
.data
num1: .float 0.1
.text
main:
#A
li $v0, 5
syscall
move $t0, $v0 #A is stored in t0
li $t3, 0
li $s5, 0
#Finds A^2
Loop1:
bge $t3, $t0, Quit1
add $s5, $s5, $t0
addi $t3, $t3, 1
j Loop1
Quit1:
li $t3, 0
li $s4, 0
mtc1 $s5, $f10 #s5 is result of A^2
cvt.s.w $f10, $f10
lwc1 $f18, num1
Я нашел квадрат выше, и я преобразовал A из целого в значение с плавающей точкой и сохранил 0,1в регистр $ f18. Тем не менее, я не уверен, как умножить 0,1xA без использования умножения или сдвига инструкции.