Определить вектор mul(vector v, float t)
. Он возвращает вектор, умножая его на t.
Если a=4i+3j+12k
, то mul(a,0.5)
вернет 2i+1.5j+6k
.
Вот код, который я написал:
.globl main
.text
main:
la $s0,t #loading t into s1
lw $s1,0($s0)
ori $s2,$zero,0
la $s3,v
#la $s0,v
#lw $s3,0($s0)
la $s0,s
lw $s4,0($s0)
jal f
f:
#if <cond>
bge $s2,$s4,DONE
#<for body>
lw $s5, 0($s3)
mul $s3,$s3,$s1
li $v0,10
syscall
j UPDATE
UPDATE:
addi $s2,$s2,1 #i=i+1
addi $s3,$s3,4 #moving address 4 bytes since int
j f
DONE:
li $v0,10
syscall
.data
s: .word 3
v: .word 4 3 12 #hard coding vector coefficients
t: .word 2 #value to be multiplied by
Когда я запускаю это на симуляторе SPIM, регистры не выдают никакого значения. Мой код неверен или мне нужно что-то добавить?