Wenn ich versuche, mit vorzeichenlosen Ganzzahlen in MIPS zu arbeiten, bleibt das Ergebnis jeder Operation, die ich ausführe, vorzeichenbehaftet (d.h. die Ganzzahlen sind alle im 2er-Komplement), obwohl jede Operation, die ich ausführe, eine vorzeichenlose ist: addu
, multu
und so vierte...
Wenn ich Zahlen aus dem Bereich [2^31, 2^32 - 1]
Ich erhalte ihren "übergelaufenen" negativen Wert, als ob sie vorzeichenbehaftet wären (was sie wohl auch sind).
Aber wenn ich so etwas versuche:
li $v0, 1
li $a0, 2147483648 # or any bigger number
syscall
die gedruckte Nummer ist immer 2147483647 (2^31 - 1)
Ich bin verwirrt... Was übersehe ich?
PS: Ich habe meinen Code nicht beigefügt, da er nicht sehr lesbar ist (so ist Assembler-Code) und abgesehen von diesem Problem, scheint er gut zu funktionieren. Wenn jemand meint, dass es notwendig ist, werde ich es sofort einfügen!