我试图将命令设为:min $ t1,$ t2,$ t3
$ t1将获得$ t2&之间的最小值的绝对值。 $ T3
任何想法?
谢谢!
答案 0 :(得分:1)
这也可以在不使用任何分支的情况下完成:
array1.zip(array2).each do |x, y|
puts x, y
end
另一种选择:
slt $t1,$t2,$t3
sub $t1,$zero,$t1 # t1 = (t2 < t3) ? 0xFFFFFFFF : 0
or $t4,$t3,$t1 # t4 = (t2 < t3) ? 0xFFFFFFFF : t3
xor $t4,$t4,$t1 # t4 = (t2 < t3) ? 0 : t3
and $t1, $t1, $t2 # t1 = (t2 < t3) ? t2 : 0
or $t1, $t1, $t4 # t1 = (t2 < t3) ? t2 : t3
答案 1 :(得分:1)
以下是签名min()
的实现,没有问题要求的abs()
特殊情况。希望对那些不需要那部分的人有用:
slt $at, $t2, $t3
add $t1, $t3, $zero
movn $t1, $t2, $at
我认为这是最好的方式......
答案 2 :(得分:0)
slt $t1,$t2,$t3
bne $t1,1,label
addi $t1,$t2,0
j exit
label: addi $t1,$t3,0
exit:
希望有所帮助