- 締切済み
オーバーフローフラグと桁あふれフラグ
オーバーフローフラグOFと桁あふれフラグVFは 同じものなんでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8803/19962)
異なるかも知れないし、異ならないかも知れない。 ある特定のCPUでは、バイト加算で、255に1を足して0になった場合と、127に1を足して-128になった場合とで、OFとVFの挙動が異なる。 これは「あくまで、ある特定のCPUに限った話」であるので、別のCPUでは、この限りではない。 例えば、ペンティアム系CPUでは、CF(キャリーフラグ)とOF(オーバーフローフラグ)があり、それぞれの挙動が異なる。因みにVFなどというフラグはペンティアム系CPUには存在しない。 つまり、 あるCPUでは、符号無しの溢れはCF、符号有りの溢れ(符号の反転)はOFに反映 別のあるCPUでは、符号無しの溢れはOF、符号有りの溢れ(符号の反転)はVFに反映 さらに別のあるCPUでは、符号無しの溢れはCF、符号有りの溢れ(符号の反転)はVFに反映 などのように「フラグ名称と挙動がCPUの種類やメーカーごとにバラバラで統一されていない」のだ。 それぞれのCPUシリーズ、メーカーごとにフラグ名称はバラバラで「どのフラグはどう動く」というのを語る場合は「それぞれのCPUの仕様書に従う」しかない。 従って「CPUを特定せずに、OFは何、VFは何、と語るのは、まったくの無意味」である。
言葉の意味は同じですね。 ただ、そのフラグがどのようなときにどうなるのか、は 呼び名だけでは特定できずCPU の仕様によるものなので、 その意味では「同じとは限りません」。 たとえばアンダーフロー/桁借りの意味も持つもの・持たないものもあるでしょう。 (実例を知ってるわけでなく、推測ですけど)