Assembly 将0x00000000与MIPS中的0xFFFFFF进行比较
我正在尝试使用MIPS汇编程序和。我一直在仔细研究我的代码,看看有什么失败了,并注意到当比较0x00000000和0xFFFFFF时,它并没有像应该的那样比较这些数字。在程序失败时,我在$t3中得到0x00000000,在$t4中得到0xFFFFFF,如下所示:Assembly 将0x00000000与MIPS中的0xFFFFFF进行比较,assembly,mips,Assembly,Mips,我正在尝试使用MIPS汇编程序和。我一直在仔细研究我的代码,看看有什么失败了,并注意到当比较0x00000000和0xFFFFFF时,它并没有像应该的那样比较这些数字。在程序失败时,我在$t3中得到0x00000000,在$t4中得到0xFFFFFF,如下所示: bge$t3,$t4,lol#因此如果t3大于或等于,我应该向前跳,否则继续。现在的问题是,即使t3更小,程序也会跳转。这是因为0xffffffff被解释为-1,即2-补码 这里有一些特殊的指令来处理数字,就像它们是未签名的一样。使用这
bge$t3,$t4,lol
#因此如果t3
大于或等于,我应该向前跳,否则继续。现在的问题是,即使t3
更小,程序也会跳转。这是因为0xffffffff
被解释为-1
,即2-补码
这里有一些特殊的指令来处理数字,就像它们是未签名的一样。使用这些说明。(例如比较
bgt
和bgtu
其中u
代表无符号。)也许它将0xFFFFFF解释为-1(2-补码)?我跳过了排序代码,只打印了数字,其中一些数字是负数。我怎样才能避开它?