ISA の仕様を調べて、これに対する答えをインターネットで検索しましたが、見つかりませんでした。
RISC-V ISA では、負の数は 1 の補数または 2 の補数で表す必要がありますか? それとも、この決定は実装者に任されていますか?
私が尋ねる理由は、私が RV32I シミュレーターを書いているためです。これは、たとえば、シミュレートされたメモリに負の数を格納する方法に影響します。
ISA の仕様を調べて、これに対する答えをインターネットで検索しましたが、見つかりませんでした。
RISC-V ISA では、負の数は 1 の補数または 2 の補数で表す必要がありますか? それとも、この決定は実装者に任されていますか?
私が尋ねる理由は、私が RV32I シミュレーターを書いているためです。これは、たとえば、シミュレートされたメモリに負の数を格納する方法に影響します。
RISC-V アーキテクチャでは、2 の補数の整数演算が必要です。これは、符号付きと符号なしの加算命令のペアではなく、単一の加算命令を指定しているという事実から最も直接的にわかります。2 の補数演算では、符号付き加算と符号なし加算は同じ演算です。1 の補数 (および符号の大きさ) では、それらは同じではありません。
アーキテクチャ マニュアルをざっと読んでみると、著者は、2 の補数の整数演算の選択はあまりにも明白であり、わざわざ言及することはできないと考えていたようです。 少なくとも 25 年間、他のものを使用した CPU は製造されていません。