我正在尝试编写一个简单的mips程序,但我仍然坚持声明一个32位有符号整数。
我写了以下简单的代码:
.data
max: .word 11111111111111111111111111111111
我希望max的值为-1,但我的IDE告诉我这个数字被解释为-954437177。我使用MARS 4.4作为我的IDE。
我做错了什么?如何让mips实际将值识别为-1?
答案 0 :(得分:1)
.word将数字放入十进制数,当你转换它时,从32位开始,你只能得到最后的32位。 11111111111111111111111111111111(10)= 10001100001111011110111110110001111011011011100110000100111111100010101011000111000111000111000111000111(2)
最后32位:11000111000111000111000111000111(2)= -954437177 如果要将-1存储为32位,请尝试 .word 0xFFFFFFFF,其值为-1