Почему операции MIPS на неподписанных номерах дают подписанные результаты?
Когда я пытаюсь работать с целыми числами без знака в MIPS, результат каждой выполняемой мной операции остается подписанным (то есть целые числа находятся в 2 's дополнение), хотя каждая выполняемая мной операция является беззнаковой:addu
multu
и так четвертый ...
Когда я печатаю числа в диапазоне[2^31, 2^32 - 1]
Я получаю ихпереполненный» отрицательное значение, как если бы они были подписаны (я думаю, что они есть).
Хотя, когда я пытаюсь что-то вроде этого:
li $v0, 1
li $a0, 2147483648 # or any bigger number
syscall
напечатанный номер всегда я2147483647 (2^31 - 1)
Я в замешательстве ... Что мне не хватает?
PS: у меня нетЯ не включил мой кодt очень читабелен (например, ассемблерный код), и, если оставить в стороне эту проблему, кажется, работает нормально. Если кто-то считает, что это необходимо, я включу это прямо сейчас!