2012-09-21 23 views
0

我是MIPS彙編的新手,我試圖檢查我的'sge'操作是否返回true或false,這是否是檢查此操作的有效方法(使用1表示true,零爲假)?在彙編中檢查sge是true還是false

sge $t1, $c, $a 
beq $t1, 1, TRUE 
beq $t1, 0, FALSE 
TRUE: add $s0, $s1, 1 
FALSE: sub $s0, $s1, 1 

回答

1

beq <register>,<immediate value>, label法律MIPS指令。真正的MIPS指令只有一個字段用於像常量或分支偏移量這樣的立即值。 (某些MIPS彙編器可能會將其實現爲pseudo instruction)。寫這個的

更習慣的方法是:

sge $t1, $t2, $t3 # $t2 contains c, $t3 contains a 
     # sge sets $t1 to 1 if $t2>=$t3 otherwise $t1 gets set to 0 
    bnez $t1, $zero, TRUE # goto TRUE if $t1 != 0 
     # at this point we know that $t1==0, so we don't need a conditional branch 
    b  FALSE 
相關問題