2017-06-21 59 views
0

所以這是我迄今爲止我不知道從哪裏去分支或只是打印出答案。我試圖打印出來的消息,但無濟於事。有沒有辦法使用slt和分支?檢查如果一個數字大於或小於然後使用slt和分支使用火星

.data 
    message1: .asciiz "The number is less than. :" 
    message2: .asciiz "/nThe number is greater than. :" 

.text 
    main: 
    addi $t0, $zero, 20 
    addi $t1, $zero, 5 

slt $s0, $t0, $t1 
beq $s0, $zero, printmessage1 

sge $s0, $t0, $t1 
beq $s0, $zero, printmessage2 


li $v0, 10 
syscall 

printmessage1: 
li $v0 4  #print out message1 
la $a0 message1 
syscall 

printmessage2: 
li $v0 4  #print out message1 
la $a0 message2 
syscall 
+0

@adam你會有什麼想法? – Smitty

回答

0

slt $t1,$t2,$t3設定爲小於:如果$t2小於$t3,然後設置$t1爲1,否則設置$t1爲0

一個解決方案,這是非常容易和減少使用指令是 使用bltbgt

bgt $t1,$t2,label如果大於則跳轉:分公司在標籤聲明如果$t1大於$t2

blt $t1,$t2,label分公司如果減:分公司在聲明標籤,如果$t1小於$t2

.data 
    message1: .asciiz "The number is less than. :" 
    message2: .asciiz "/nThe number is greater than. :" 

    .text 
    main: 
    addi $t0, $zero, 20 
    addi $t1, $zero, 5 

    blt $t0, $t1,printmessage1 
    b printmessage2 


    li $v0, 10 
    syscall 

    printmessage1: 
    li $v0 4  #print out message1 
    la $a0 message1 
    syscall 

    printmessage2: 
    li $v0 4  #print out message1 
    la $a0 message2 
    syscall 
相關問題