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
答案 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