Carry Flag

From NES Hacker Wiki
Revision as of 17:57, 5 October 2012 by TheAlmightyGuru (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The Carry Flag (C) is bit 0 of the Processor Status Register. For addition and logical operations, this bit holds the the most significant bit that is carried beyond the 8 bits of a byte. However, in subtraction operations, the flag is cleared to 0 if borrow is required, but set to 1 if borrow is not required.


The example uses left shift on values that have bit 7 on and off. The 7th bit in left shift is moved into the carry flag.

0001:A9 00     LDA #$80        ; Load A with 128 = 10000000
0002:0A        ASL A           ; Left shift A 1 ← 00000000
                               ; This pushes the 1 into the carry flag, setting it to 1.
0003:A9 64     LDA #$64        ; Load A with 100 = 01100100
0004:0A        ASL A           ; Left shift A 0 ← 11001000
                               ; This pushes the 0 into the carry flag, clearing it to 0.


The following opcodes affect the carry flag.