MIPS实现从10个数里面找出最大和最小的数

    li $t1,1 #t1中存放的是临时变量 i
    li $t2,11 #t2中存放的是临时变量 也就是循环的上界
    li $t4,1 #4中存放的是临时变量,也就是代表第一次循环
loop1:
    li $v0,5
    syscall
    beq $t1,$t4,IF1
    L1:blt $v0,$t3,IF2   #如果v0小于v3,此时应该让v3得到v0的值
    L2:blt $t5,$v0,IF3  #如果t5小于v0,也就是说最大值应该要更新
    
    L3:addi $t1,$t1,1 #次数加1
    bne $t1,$t2,loop1  #判断循环终止条件
    beq $t1,$t2,end
    
IF1:
    move $t3,$v0 #t3中存放的是最小值
    move $t5,$v0 #t5中存放的是最大值
    b L1
    
IF2:
     move $t3,$v0
     b L2
IF3:
     move $t5,$v0
     b L3
    
end:
    li $v0,4
    la $a0,String1
    syscall
    li $v0,1#打印最大值
    move $a0,$t5
    syscall
    li $v0,4#打印换行符
    la $a0,String3
    syscall
    li $v0,4
    la $a0,String2
    syscall
    li $v0,1#打印最小值
    move $a0,$t3
    syscall
    li $v0,10 #结束程序
    syscall
.data
String1: .asciiz "MAX:"
String2: .asciiz "MIN:"
String3: .asciiz "\n"

    
    
    

你可能感兴趣的:(MIPS实现从10个数里面找出最大和最小的数)