Mips 没有操作丢失

Mips 没有操作丢失,mips,Mips,我试图弄清楚MIPS的“not”指令,但我还没弄清楚。。。 我在网上看到了很多例子并尝试了它们。 例如: not $t0, $t1 及 但当我尝试使用模拟器MARS时,我得到的答案是:-1或-2。 什么时候对我来说应该是1或0 我想要的是: !!1(=0)或!0(=1) 有什么问题吗?我错过什么了吗 我想要的是: !!1(=0)或!0(=1) 在这种情况下,您应该这样做: sltu $t0, $zero, $t1 xori $t0, $t0, 1 sltu指令检查零是否小于$t1,并根据比较

我试图弄清楚MIPS的“not”指令,但我还没弄清楚。。。 我在网上看到了很多例子并尝试了它们。 例如:

not $t0, $t1

但当我尝试使用模拟器MARS时,我得到的答案是:-1或-2。 什么时候对我来说应该是1或0

我想要的是:

!!1(=0)或!0(=1)

有什么问题吗?我错过什么了吗

我想要的是:

!!1(=0)或!0(=1)

在这种情况下,您应该这样做:

sltu $t0, $zero, $t1
xori $t0, $t0, 1
sltu
指令检查零是否小于
$t1
,并根据比较结果将
$t0
设置为1或0。因为它是一个无符号比较,所以本质上与
$t0=($t1!=0)相同?1:0
。因为你想要的是
$t0=($t1==0)?1:0
我们使用异或之后将0反转为1,反之亦然



not
指令执行。也就是说,它反转所有位(所有0到1,所有1到0)。因此,如果输入为0,则得到0xFFFFFFFF作为结果(也可以解释为-1)。如果输入为1,则得到0xFFFFFFFE(也可以解释为-2)。

这里有一个资源可以回答您的问题。嗯…我很困惑。。。我应该在哪里看到答案/
sltu $t0, $zero, $t1
xori $t0, $t0, 1