We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

Overflow Flag: Difference between revisions

From SnesLab
Jump to: navigation, search
(how it behaves)
(more description)
Line 1: Line 1:
The '''Overflow Flag''' (V) is affected only by the following eight instructions:
The '''Overflow Flag''' (V) is affected only by the following eight instructions:


* [[ADC]]
* [[ADC]] (indicates signed sum overflowed)
* [[SBC]]
* [[SBC]] (indicates signed difference underflowed)
* [[CLV]] (always clears it)
* [[CLV]] (always clears it)
* [[BIT]]
* [[BIT]]
Line 9: Line 9:
* [[SEP]] (might set it)
* [[SEP]] (might set it)
* [[REP]] (might clear it)
* [[REP]] (might clear it)
Here is how it behaves:


* When the accumulator is 8 bits wide, V indicates whether the sum/difference of [[ADC]]/[[SBC]] is outside the range of -128 to 127.
* When the accumulator is 8 bits wide, V indicates whether the sum/difference of [[ADC]]/[[SBC]] is outside the range of -128 to 127.

Revision as of 16:01, 24 July 2024

The Overflow Flag (V) is affected only by the following eight instructions:

  • ADC (indicates signed sum overflowed)
  • SBC (indicates signed difference underflowed)
  • CLV (always clears it)
  • BIT
  • PLP
  • RTI
  • SEP (might set it)
  • REP (might clear it)

Here is how it behaves:

  • When the accumulator is 8 bits wide, V indicates whether the sum/difference of ADC/SBC is outside the range of -128 to 127.
  • When the accumulator is 16 bits wide, V indicates whether the result of ADC/SBC is outside the range of -32768 to 32767.

It may be the most misunderstood flag of the 65c816 and the 6502.[2] It is bit 6 of the status register.

There is no SEV instruction to directly set the overflow flag, but the 6502 and 65c02 do have a hardware signal to set it. Unfortunately this hardware signal was removed on the 65c816.

On the SPC700 it can be cleared with CLRV and is set whenever the half-carry flag is set.

See Also

References

  1. Eyes & Lichty, page 439: https://archive.org/details/0893037893ProgrammingThe65816/page/439
  2. Clark, Bruce. http://www.6502.org/tutorials/vflag.html
  3. Shirriff, Ken. https://www.righto.com/2012/12/the-6502-overflow-flag-explained.html?m=1
  4. lbid. https://www.righto.com/2013/01/a-small-part-of-6502-chip-explained.html?m=1
  5. Labiak. https://archive.org/details/Programming_the_65816/page/n118
  6. Pickens, John. NMOS 6502 Opcodes. http://www.6502.org/tutorials/6502opcodes.html#VFLAG