A <- A + (IY+d) + CY
ADC
A,(IY+d)
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | |
---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | $FD |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | $8E |
d |
The contents of the Index (register pair IY) Register is added to a two's complement displacement d to point to an address in memory. The contents of this address along with the Carry Flag (C in the F Register) is then added to the contents of the Accumulator and the result is stored in the Accumulator.
S | is set if result is negative, otherwise it is reset. |
Z | is set if result is 0, otherwise it is reset. |
H | is set if carry from bit 3, otherwise it is reset. |
P/V | is set if overflow, otherwise it is reset |
N | is reset. |
C | is set if carry from bit 7, otherwise it is reset. |
If the Accumulator contains $11, Index Register IY contains $1000, the Carry Flag is set and memory location $1005 contains $22, then upon the execution of
ADC A,(IY+$05)
the Accumulator contains $34.