我正在尝试使用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/