0

我知道如何手动将二进制补码转换为 10 进制。

http://sandbox.mc.edu/~bennet/cs110/tc/tctod.html

如链接所示。你可以通过第一位判断一个数字是负数还是正数,所以我的想法是因为这个数字是 8 位,所以我将除以 1000 0000 二进制或十六进制 0x00000080。

有没有人有更好的解决方案,因为现在这对我不起作用,我的代码在底部。寄存器 1 是二进制补码的位置。

lis $8
.word 0x00000080

div $1, $8

mflo $9

jr $31
4

1 回答 1

2

首先,您可以做的是创建变量的 NOT。MIPS 没有内置的 NOT 但您可以使用 XOR 来获取它(使用 addi 将寄存器的值设置为 -1,在寄存器上使用 XOR 与其中带有 -1 的寄存器取反,它存储所有1)

之后就很简单了,加1就行了。

于 2013-02-26T08:28:35.363 回答