2
我試圖在MIPS
中找到最小值和數組的總和。我似乎無法弄清楚我在做什麼錯誤,它會給出錯誤的總和,甚至不會分析並返回數組的最小值。使用MIPS尋找數組中的最小值
我只允許使用兩條分支指令,bne
和beq
,但任何其他指令都是公平遊戲。
# local variable register
# int sum $s0
# int min $s1 (To be used when students enhance the program.)
# int *p $s2
# int *past_last $s3
#
.text
.globl main
main:
la $s2, arr # p = arr
addi $s3, $s2, 24 # past_last = p + 6
lw $s0, ($s2) # sum = *p
while:
addi $s2, $s2, 4 # p++
beq $s2, $s3, endwhile # if (p == past_last) goto L2
lw $t0, ($s2) # $t0 = *p
lw $t1, -4($s2) # $t1 = *(p--)
slt $t2, $t1, $t0 # $t2 = 1 if (*p < *(p--)) else $t2 = 0
bne $t2, $zero, minimum # if ($t2 != 0) goto minimum
add $s0, $s0, $t0 # sum += $t0
j while
minimum:
lw $s1, ($t1) # min = $t1
j while
endwhile:
非常感謝! – user2880990