.globl main
.text
main:
la $a0, data
lw $a1, size
slt $t0,$a1,1
bne $t0,1,A
jr $ra
A:
add $s0,$zero,$zero
add $s1,$zero,$a1
sub $s1,$s1,1
beq $s1,0,oneele
addi $sp,$sp,-4
sw $ra,0($sp)
jal maximum
lw $ra,0($sp)
addi $sp,$sp,4
j done
oneele:
lw $v0,0($a0)
lw $ra,0($sp)
addi $sp,$sp,4
j done
maximum:
#$s0 holds lower integer.
#$s1 holds upper integer.
beq $s0,$s1,return
sub $t2,$s1,$s0
bne $t2,1,halffunc
sll $t3,$s0,2
sll $t4,$s1,2
add $t5,$a0,$t3
add $t6,$a0,$t4
lw $t5,0($t5)
lw $t6,0($t6)
slt $t2,$t5,$t6
bne $t2,1,return
add $s0,$zero,$s1
j return
return:
sll $t3,$s0,2
add $t4,$a0,$t3
slt $t5,$v0,$t4
beq $t5,$zero,done
lw $v0,0($t4)
jr $ra
halffunc:
addi $sp,$sp,-12
sw $ra,0($sp)
sw $s0,4($sp)
sw $s1,8($sp)
add $s1,$s1,$s0
srl $s1,$s1,1
jal maximum
lw $s0,4($sp)
lw $s1,8($sp)
add $s0,$s0,$s1
srl $s0,$s0,1
addi $s0,$s0,1
jal maximum
lw $s0,4($sp)
lw $s1,8($sp)
lw $ra,0($sp)
addi $sp,$sp,12
jr $ra
done:
sw $v0,ans
jr $ra
.data
size: .word 3
data: .word 1, 2, 3
ans: .word
교수 미쳤다
재귀로 배열에 있는 수들중에 젤 큰수를 찾아내랜다
그냥 반복문으로 하면 편할걸..
재귀 연습시킬려고하는건가부지..썅

Prev
Rss Feed