1. ホーム
  2. math

[解決済み] 算術オーバーフローと算術キャリーの比較

2022-02-05 11:52:26

質問

私の講義のスライドの一つに、ARMチップの条件分岐フラグの話題で、算術オーバーフローとキャリーの例があり、以下に引用します。

  • V (オーバーフロー) - 7FFFFFFF+1
  • C (キャリー) - FFFFFFFF+1

おそらく、この例では、アドレスは8バイトしか保持できないと思います。つまり、7FFFFFFFFに1を足すと80000000になるような気がするのです。80000000ならまだ8バイトのアドレスに収まるのでは?

なぜ算術オーバーフローになるのでしょうか?スライドが逆なのでしょうか?それとも、私の理解に欠陥があるのでしょうか?

回答ありがとうございました。

解決方法は?

  • オーバーフローフラグは、レジスタが結果を符号付き値として適切に表現できない(符号ビットにオーバーフローした)場合に設定されます。
  • キャリーフラグは、レジスタが符号なし値として結果を適切に表現できない場合に設定されます(符号ビットは必要ありません)。