当我尝试在MIPS中处理无符号整数时,我执行的每个操作的结果都保持有符号(即,整数都是2的补码),即使我执行的每个操作都是无符号的:addu,multu所以第四个......
当我在该范围内打印数字时,[2^31, 2^32 - 1]我得到它们的"溢出"负值,好像它们已经签名(我猜它们是).
但是,当我尝试这样的事情:
li $v0, 1
li $a0, 2147483648 # or any bigger number
syscall
Run Code Online (Sandbox Code Playgroud)
打印的号码总是 2147483647 (2^31 - 1)
我很困惑......我错过了什么?
PS:我没有包含我的代码,因为它不是非常易读(例如汇编代码)并且抛开这个问题,似乎工作正常.如果有人认为有必要,我会马上加入!