定义向量mul(vector v, float t)
。它通过将向量乘以 t 返回一个向量。
如果a=4i+3j+12k
thenmul(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 模拟器上运行它时,寄存器不会产生任何值。我的代码是错误的还是我需要添加一些东西?