我正在尝试使用 MIPS 汇编器和 xspim 对 32 位数字列表进行排序。我一直在逐步检查我的代码以查看失败的原因,并注意到在将 0x00000000 与 0xFFFFFFFF 进行比较时,它没有按应有的方式比较这些数字。当程序失败时,我在 $t3 中得到 0x00000000,在 $t4 中得到 0xFFFFFFFF,它看起来像这样:
bge $t3,$t4,lol
#因此,如果t3
大于或等于我应该向前跳,否则继续。现在的问题是,即使 t3
更小,程序也会跳转。
最佳答案
这是因为 0xffffffff
被解释为 -1
,即 2 补码。
有一些具体的说明来处理数字,就好像它们是无符号的一样。使用这些说明。 (例如比较 bgt
和 bgtu
,其中 u
代表无符号。)
关于assembly - 在 MIPS 中比较 0x00000000 与 0xFFFFFFFF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224276/