我正在尝试使用MIPS汇编器和xspim对32位数字列表进行排序。我一直在浏览我的代码以查看失败的原因,并注意到在将0x00000000与0xFFFFFFFF进行比较时,它并没有像应该的那样对这些数字进行比较。在程序失败的那一点上,我在$ t3中得到了0x00000000,在$ t4中得到了0xFFFFFFFF,看起来像这样:
bge $t3,$t4,lol#因此,如果t3大于或等于我应该向前跳,否则继续。现在的问题是,即使t3较小,程序也会跳转。

最佳答案

这是因为0xffffffff被解释为-1,即2补码。

对于数字,有一些具体的说明,就好像它们是未签名的一样。使用这些说明。 (比较bgtbgtu,其中u代表无符号。)

关于assembly - 在MIPS中将0x00000000与0xFFFFFFFF进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6224276/

10-11 15:25