Assembly 做一个;";MIPS中的命令
我试着做一个命令:min$t1,$t2,$t3 $t1将获得$t2和$t3之间的最小值的绝对值 有什么想法吗Assembly 做一个;";MIPS中的命令,assembly,mips,Assembly,Mips,我试着做一个命令:min$t1,$t2,$t3 $t1将获得$t2和$t3之间的最小值的绝对值 有什么想法吗 谢谢 嘿,伙计们找到了答案 slt $t1,$t2,$t3 bne $t1,1,label addi $t1,$t2,0 j exit label: addi $t1,$t3,0 exit: 希望能有所帮助嘿,伙计们找到了答案 slt $t1,$t2,$t3 bne $t1,1,label addi $t1,$t2,0 j exit label: addi $t1,$t3,0 exit
谢谢 嘿,伙计们找到了答案
slt $t1,$t2,$t3
bne $t1,1,label
addi $t1,$t2,0
j exit
label: addi $t1,$t3,0
exit:
希望能有所帮助嘿,伙计们找到了答案
slt $t1,$t2,$t3
bne $t1,1,label
addi $t1,$t2,0
j exit
label: addi $t1,$t3,0
exit:
希望它有帮助这也可以在不使用任何分支的情况下完成:
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
slt$t1、$t2、$t3
低于$t1,$零,$t1#t1=(t2
另一种选择:
or $t4,$zero,$zero
slt $t1,$t2,$t3
movn $t4,$t3,$t1 # t4 = (t2 < t3) ? t3 : 0
movn $t1,$t2,$t1 # t1 = (t2 < t3) ? t2 : 0
xor $t1,$t1,$t4 # t1 = (t2 < t3) ? (t2 ^ t3) : 0
xor $t1,$t1,$t3 # t1 = (t2 < t3) ? t2 : t3
或$t4、$0、$0
slt$t1、$t2、$t3
movn$t4、$t3、$t1#t4=(t2
这也可以在不使用任何分支的情况下完成:
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
slt$t1、$t2、$t3
低于$t1,$零,$t1#t1=(t2
另一种选择:
or $t4,$zero,$zero
slt $t1,$t2,$t3
movn $t4,$t3,$t1 # t4 = (t2 < t3) ? t3 : 0
movn $t1,$t2,$t1 # t1 = (t2 < t3) ? t2 : 0
xor $t1,$t1,$t4 # t1 = (t2 < t3) ? (t2 ^ t3) : 0
xor $t1,$t1,$t3 # t1 = (t2 < t3) ? t2 : t3
或$t4、$0、$0
slt$t1、$t2、$t3
movn$t4、$t3、$t1#t4=(t2
这里是signedmin()
的一个实现,没有问题所要求的abs()
特例。希望对不需要该部件的人有用:
slt $at, $t2, $t3
add $t1, $t3, $zero
movn $t1, $t2, $at
我认为这是最好的方法…这是一个signed
min()
的实现,没有问题所要求的abs()
特例。希望对不需要该部件的人有用:
slt $at, $t2, $t3
add $t1, $t3, $zero
movn $t1, $t2, $at
我认为这是最好的方式