RISC-V 是否强制要求补码或补码符号,还是由实现决定?

M. *_*Moo 4 instruction-set twos-complement ones-complement riscv

我浏览了 ISA 规范并在互联网上搜索了这个问题的答案,但我找不到它。

在RISC-V ISA中,负数应该用补码还是补码表示?或者,这个决定是留给实施者的吗?

我问的原因是我正在编写一个 RV32I 模拟器,这会影响我在模拟内存中存储负数的方式。

zwo*_*wol 6

RISC-V 架构需要二进制补码整数运算。这可以从它指定单个加法指令,而不是一对有符号和无符号加法指令这一事实中最直接地看出。在二进制补码算术中,有符号加法和无符号加法是相同的运算;在补码(和符号大小)中,它们是不同的。

在我看来,浏览一下架构手册,作者认为二进制补码整数算术的选择太明显了,无需提及。 至少 25 年来还没有生产过使用其他任何东西的 CPU。