【发布时间】:2013-11-15 14:50:52
【问题描述】:
我正在 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 时不能使用常量吗?感谢您的帮助
【问题讨论】:
标签: mips