MIPS怎么办'少于'没有blt指令

时间:2015-10-02 15:34:56

标签: assembly mips

MIPS有一条指令blt(分支如果小于)。例如:

blt $t0, $t1,target  #branch to target if $t0<=$t1.  

我想知道如何仅使用Equal或Not Equal执行相同的操作:

bne $rt, $rs, target #Branch to target if $a0 and $a1 are NOT equal

beq $rt, $rs, target #Branch to target if $a0 and $a1 are equal

1 个答案:

答案 0 :(得分:0)

使用相等(beq)检查smaler / greater:将第一个变量减去1并检查与第二个变量的相等性。如果它们相等,则第一个变量更大。当它们不相等时,继续将此步骤降至零。当你达到零并且它们不相等时,第二个变量就更大了。 (!!注意:这仅适用于正值。!!)

.data

a: .word 0
b: .word 1

.text
.global main main

lw $t0 a
lw $t1 b
li $t2 1


beq $t0 $t1 EQUAL

LOOP:
    beq $t0 $zero SMALER
    sub $t0 $t0 $t2
    beq $to $t1 GREATER

    j LOOP



SMALER:     # a <  b
GREATER:    # a >  b
EQUAL:      # a == b