大家好,我是mips汇编的新手,我的老师给了我们以下解决方案。该程序基本上使用堆栈在数组中找到最小和最大val。我完全迷失了,尤其是使用堆栈,因为我无法直观地看到任何一个。请也许用人类语言解释不同的语言,我将不胜感激!
.data
array: .word 4, 10, -1, 8, 0, 22, 100, 100, -5, 45
.text
main:
la $a0, array
li $a1, 10
jal minmax
j exit
minmax:
addi $sp, $sp, -8
sw $a0, 0($sp)
sw $a1, 4($sp)
lw $v0, 0($a0)
lw $v1, 0($a0)
addi $a1, $a1, -1
next:
ble $a1, $zero, return
addi $a0, $a0, 4
addi $a1, $a1, -1
lw $t0, 0($a0)
blt $v0, $t0, max
move $v0, $t0
max:
bgt $v1, $t0, next
move $v1, $t0
j next
return:
lw $a0, 0($sp)
lw $a1, 4($sp)
addi $sp, $sp, 8
jr $ra
exit: