私はこのプログラムを MIPS で書いて、私が与えた 2 のべき乗を計算し、0 までの累乗を合計します。たとえば、以下のコードのように $a0 に 4 を入れると、(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 を引き、合計を計算する方法がわかりません。mipsにはべき乗演算がないと思うので、どうすれば2をkの累乗にすることができますか。コースのこの時点では、add、sub、and、or、slt、addi、j、beq、lw、sw、および sll しか使用できません。サブを使用する場合、定数を使用できませんか? 助けてくれてありがとう