【发布时间】:2018-02-05 10:01:45
【问题描述】:
我写下这个简单的代码只是为了验证 Mips 处理器中的溢出以进行最终测试:
.data
.text
.globl main
main:
li $s0, 2000000000
li $s1, 2000000000
addu, $s2 , $s0, $s1
li $v0, 1
move $a0, $s2
syscall
j end
end:
li $v0, 10
syscall
它当然会导致 0xee6b2800,十进制 -294967296,只是因为 mips 将数字编码为二进制补码并将 MSB 识别为符号位(1,及其负数)。 我怎样才能实现一个循环来打印(在同一个程序中)正确的值? (在本例中为 4 Bil,4x10^9) 非常感谢
【问题讨论】: