我正在用MIPS編寫這個程序來計算2給我給出的功率,並將順序功率降爲0.例如,如果我把$ 4放在$ a0中,就像下面的代碼一樣,我想要它計算應該出來的(4^2)+(3^2)+(2^2)+(1^2)。它應該在它達到零之前停止。這是我至今寫在MIPS中寫入迭代
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次方,因爲我猜測沒有能量操作。在這個過程中,我只能使用add,sub和,或者slt,addi,j,beq,lw,sw和sll。使用sub時,你不能使用常量嗎?謝謝你的幫助
2的冪與2相乘的效果不一樣;) – m0skit0
@ m0skit0 orly? 2 * 2 * 2 <> 2^3? – RobertB
夥計,看完這個問題:*「我想要它計算(4^2)+(3^2)+(2^2)+(1^2)」*現在請使用移位計算3^2。 – m0skit0