ADC             Add with Carry – Addieren mit Carry-Flag

Grundsätzlich werden Bytewerte addiert. Bei einem Übertrag wird das Carry-Flag gesetzt, ansonsten gelöscht. Wird bei gesetztem Carry-Flag weiter addiert wird das Carry-Flag in der Addition mitberücksichtigt, so dass nicht ein 8-Bit sondern ein 9-Bit Wert für diesen Additionsbefehl zur Verfügung steht. Ist der Anfangswert ein 8-Bit Wert, so muss sichergesetllt sein, dass das Carry-Flag gelöscht ist – bswp. mit CLC.

ModusSyntaxHexLängeZyklen
unmittelbarADC #$116922
Zero PageADC $226523
Zero Page,XADC $33,X7524
absolutADC $44006D34
absolut,XADC $5500,X7D34+
absolut,YADC $6600,Y7934+
indirekt,XADC ($77,X)6126
indirekt,YADC ($88),Y7125+
+ ... zusätzlicher Taktzyklus bei erhöhtem Hi-Byte
 
beeinflußte Flags
N Negativ-Flag
V Overflow-Flag 
Z Zero-Flag
C Carry-Flag

Besonderheit:

Die Berechnung ist unabhängig vom Zustand des Decimal-Flags. Der Befehl ADC führt deshalb bei BCD-Werten zu einem fehlerhaften Ergebnis.