Assembly MIPS是否找到最低值?

Assembly MIPS是否找到最低值?,assembly,mips,Assembly,Mips,我已经尝试了以下代码,对于前两个整数,它运行良好。但当我们在第三次提示中取最小值时,它不会被取为最小值。这是我的密码。我犯了那个错误。(对不起我的英语不好) 非常感谢 .text .align 2 .globl main main: # this program prints out the lowest value of three numbers input li $v0, 4 la $a0, prompt1 syscall li $v0, 5 # read ke

我已经尝试了以下代码,对于前两个整数,它运行良好。但当我们在第三次提示中取最小值时,它不会被取为最小值。这是我的密码。我犯了那个错误。(对不起我的英语不好)

非常感谢

    .text
.align 2 
.globl main 

main: 
# this program prints out the lowest value of three numbers input 

li $v0, 4 
la $a0, prompt1 
syscall 

li $v0, 5 # read keyboard into $v0 (number x is number to test) 
syscall 
move $t0,$v0 # first number in $t0 

li $v0, 4 
la $a0, prompt2 
syscall 

li $v0, 5 # read keyboard into $v0 (number x is number to test) 
syscall 
move $t1,$v0 # second number in $t1 

li $v0, 4 
la $a0, prompt3 
syscall 

li $v0, 5 # read keyboard into $v0 (number x is number to test) 
syscall 
move $t2,$v0 # third number in $t2 

blt $t1, $t0, L1 
move $t1, $t0 # smallest number in $t1 

blt $t2, $t1, L1 
move $t2, $t1

L1: 
li $v0, 4 # print answer 
la $a0, answer 
syscall 

li $v0, 1 # print integer function call 1 
move $a0, $t1 # integer to print 
syscall 

end: jr $ra 

.data 
prompt1: .asciiz "Enter the first number " 
prompt2: .asciiz "Enter the second number " 
prompt3: .asciiz "Enter the third number " 
answer: .asciiz "\nThe smallest number is "

尝试选择最小数字的位:

blt $t1, $t0, L1 
move $t1, $t0 # smallest number in $t1 

blt $t2, $t1, L1 
move $t2, $t1

L1: 
您只有一个标签,因此如果跟随第一个分支,您将完全跳过与第三个数字的比较

您将需要更多类似于:

blt $t1, $t0, L1 
move $t1, $t0 # smallest number in $t1 

L1: 

blt $t2, $t1, L2
move $t2, $t1

L2: 

亲爱的先生,修改后的解决方案相同。。L1:blt$t2,$t1,L2 move$t2,$t1 L2:li$v0,4#打印回答la$a0,回答syscallwell您也没有在调用之间保存任何寄存器,但由于您没有实际说出您得到的结果,所以很难回答。