我正在用 MIPS 编写这个程序来计算 2 到我给定的幂,并将顺序幂求和到 0。例如,如果我像下面的代码一样将 4 放入 $a0 中,我希望它计算 (4^2 )+(3^2)+(2^2)+(1^2) 应该是 15。它应该在达到零之前停止。这是我到目前为止所写的
main:
addi $a0, $zero, 4 #put k in $a0 in this case
addi $a1, $zero, 0 #put 0 in current sum
addi $v1, $v1, 0 #tally the total in $v1
for:
lw $10, $a0 #load k into reg $10
lw $11, $a1 #load sum into $11
addi $10, $10, -1 #subtracts 1 from k
li $9, 0 #sets i in for loop ($9) to 0
完毕:
li $v0, 10
syscall
我是 MIPS 的新手,可以在完成这个过程中使用很多帮助,我知道我想使用 for 循环,但我不知道如何在从 k 中减去 1 并计算总和时完成它。我如何将 2 带入 k 的幂,因为我猜 mips 中没有幂运算。在课程的这一点上,我只能使用 add、sub、and、or、slt、addi、j、beq、lw、sw 和 sll。使用 sub 时不能使用常量吗?感谢您的任何帮助