Por que as operações do MIPS em números não assinados fornecem resultados assinados?

Quando tento trabalhar em inteiros não assinados no MIPS, o resultado de cada operação que faço continua sendo assinado (ou seja, os inteiros são todos no complemento de 2), embora todas as operações que executo sejam não assinadas:addu, multu e então quarto ...

Quando imprimo números no intervalo[2^31, 2^32 - 1] Eu recebo seu valor negativo "transbordado" como se eles fossem assinados (eu acho que eles são).

Porém, quando eu tento algo assim:

li $v0, 1
li $a0, 2147483648                # or any bigger number
syscall

o número impresso é sempre2147483647 (2^31 - 1)

Estou confuso ... O que estou perdendo?

PS: Eu não incluí meu código, pois ele não é muito legível (como é o código assembly) e deixar de lado esse problema, parece estar funcionando bem. Se alguém sentir que é necessário, vou incluí-lo imediatamente!

questionAnswers(2)

yourAnswerToTheQuestion