オーバーフローフラグとは、加算命令で加算する二つの1ワードの値を符号ビット付き2進数として扱い、その加算結果が符号ビット付き2進数で表せる範囲を超えて、算術オーバーフローした場合に1になるフラグのことです。
オーバーフローフラグは、ステータスレジスタのフラグの一つです。
例えば、以下は、1ワードが4ビットの符号ビット付き2進数の0111(10進数で7)と0001(10進数で1)を加算命令で加算する例です。
0111
+ 0001
------
1000
実際の答えは、10進数で8ですが、扱える値の範囲を超えているため、答えが1000(10進数でー8)になっています。
最大値を超える場合は、キャリーフラグが0で最上位ビットへの桁上がりがある場合にオーバーフローフラグが1になります。
例えば、以下は、1ワードが4ビットの符号ビット付き2進数の1000(10進数でー8)と1111(10進数でー1)を加算命令で加算する例です。
1000
+ 1111
------
10111
実際の答えは、10進数でー9ですが、扱える値の範囲を超えているため、答えが0111(10進数で7)になっています。
最小値を下回る場合は、キャリーフラグが1で最上位ビットへの桁上がりがない場合にオーバーフローフラグが1になります。