Difference between revisions of "Overflow Flag"
(→a little more info to make it clearer) |
m (Protected "Overflow Flag" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | The Overflow Flag indicates that the previous operation resulted in a signed number whose sign was inconsistent with the signs of the operands that produced it. For instance, the Overflow Flag gets set when adding two positive numbers produces a negative result, or adding two negative numbers produces a positive result. | + | The Overflow Flag indicates that the previous operation resulted in a signed number whose sign was inconsistent with the signs of the operands that produced it—signed integer overflow. For instance, the Overflow Flag gets set when adding two positive numbers produces a negative result, or adding two negative numbers produces a positive result. |
The truth table below indicates when the CPU sets or clears the Overflow Flag: | The truth table below indicates when the CPU sets or clears the Overflow Flag: | ||
Latest revision as of 09:01, 4 December 2010
The Overflow Flag indicates that the previous operation resulted in a signed number whose sign was inconsistent with the signs of the operands that produced it—signed integer overflow. For instance, the Overflow Flag gets set when adding two positive numbers produces a negative result, or adding two negative numbers produces a positive result.
The truth table below indicates when the CPU sets or clears the Overflow Flag:
| Addition | ||||
|---|---|---|---|---|
| Sign of first operand | Sign of second operand | Sign of result | Resulting value of Overflow Flag | Notes |
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 1 | Adding two positive numbers produced a negative result |
| 0 | 1 | 0 | 0 | |
| 0 | 1 | 1 | 0 | |
| 1 | 0 | 0 | 0 | |
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | 1 | Adding two negative numbers produced a positive result |
| 1 | 1 | 1 | 0 | |
| Subtraction | ||||
| Sign of value being subtracted (subtrahend) | Sign of value being subtracted from (minuend) | Sign of result | Resulting value of Overflow Flag | |
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 0 | |
| 0 | 1 | 0 | 1 | Subtracting a positive number from a negative number gave a positive result. |
| 0 | 1 | 1 | 0 | |
| 1 | 0 | 0 | 0 | |
| 1 | 0 | 1 | 1 | Subtracting a negative number from a positive number gave a negative result. |
| 1 | 1 | 0 | 0 | |
| 1 | 1 | 1 | 0 | |