CC |
|
Description: | Complement carry |
Operation: | - |
Flags affected: | C, DC |
Registers affected: | Status |
Sources referenced: | Status |
Cycles: | 1 |
Opcode: | |
Actually compiles to: | CLRB 3.1 ; INCSZ 3 |
Microchip PIC syntax: | |
Notes: |
This is a trick to complement the Carry flag that takes advantage of the fact that Carry is the lowest order bit in the status register. You can always switch a zero to a one or a one to a zero by adding one to it. As long as the (little used) DC flag is cleared, incrementing the Status register wil never effect any higher bits such as Z or PA0..2. Using the INCSZ rather than a regular INC keeps the Z flag from being affected. Since the DC was 0 before the INCSZ, there is no way the skip can occur.
To use this instruction, first define the following macro.
CC macro CLRB 3.1 INCSZ 3 endm