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

Carry Flag: Difference between revisions

From SnesLab
Jump to: navigation, search
(all Arithmetic/shift+rotate)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''Carry Flag''' (C) exists on the [[65c816]] as bit 0 of the [[status register]].
The '''Carry Flag''' (C) is bit 0 of the [[65c816]]'s [[status register]].


It can be set with [[SEC]] and cleared with [[CLC]].  Or, [[SEP]] and [[REP]] can be used.
It can be set with [[SEC]] and cleared with [[CLC]].  Or, [[SEP]] and [[REP]] can be used.


The following other 10 instructions have side effects that directly affect the carry flag, which includes all arithmetic and all shift/rotate instructions:
The following other 10 instructions have side effects that directly affect the carry flag, which includes all arithmetic instructions (except those that can only increment/decrement by one) and all shift/rotate instructions:


* [[ADC]] (becomes set when an addition overflows)
* [[ADC]] (becomes set when an addition overflows)
Line 22: Line 22:


The carry flag influences whether [[BCS]] and [[BCC]] branch or not.
The carry flag influences whether [[BCS]] and [[BCC]] branch or not.
As mentioned above, none of [[INC]], [[DEC]], [[INX]], [[DEX]], [[INY]] nor [[DEY]] modify the carry flag.


=== See Also ===
=== See Also ===
Line 28: Line 30:
* [[Overflow Flag]]
* [[Overflow Flag]]


=== Reference ===
=== References ===
* Labiak, William.  [https://archive.org/details/Programming_the_65816/page/n118 Page 108.]
* Labiak, William.  [https://archive.org/details/Programming_the_65816/page/n118 Page 108.]
* [[Eyes & Lichty]], "Branching Based on the Carry Flag" on [https://archive.org/details/0893037893ProgrammingThe65816/page/147 page 147]


[[Category:ASM]]
[[Category:ASM]]
[[Category:Flags]]
[[Category:Flags]]
[[Category:Inherited from 6502]]
[[Category:Inherited from 6502]]
[[Category:Condition Codes]]

Latest revision as of 02:37, 16 August 2024

The Carry Flag (C) is bit 0 of the 65c816's status register.

It can be set with SEC and cleared with CLC. Or, SEP and REP can be used.

The following other 10 instructions have side effects that directly affect the carry flag, which includes all arithmetic instructions (except those that can only increment/decrement by one) and all shift/rotate instructions:

  • ADC (becomes set when an addition overflows)
  • ASL (becomes whatever the most significant bit was)
  • CMP
  • CPX
  • CPY
  • LSR (becomes whatever bit 0 was)
  • ROL (becomes whatever the most significant bit was)
  • ROR (becomes whatever bit 0 was)
  • SBC (where it is often called the "borrow flag" instead)
  • XCE (becomes whatever the e flag was)

The following two instructions indirectly affect the carry flag by loading the status register:

The carry flag influences whether BCS and BCC branch or not.

As mentioned above, none of INC, DEC, INX, DEX, INY nor DEY modify the carry flag.

See Also

References