SBC             Subtract with Carry – Subtrahieren mit Carry-Flag

Grundsätzlich werden Bytewerte subtrahiert. Diese Operation wird auf eine Addition mit einem Zweierkomplement zurückgeführt. Deshalb sollte sichergesetllt sein, dass das Carry-Flag – bspw. mit SEC – vor der Subtraktion gesetzt ist. Ist das Carry-Flag gelöscht, entsteht immer ein Untertrag (Overflow-Flag wird gesetzt).

ModusSyntaxHexLängeZyklen
unmittelbarSBC #$11E922
Zero PageSBC $22E523
Zero Page,XSBC $33,XF524
absolutSBC $4400ED34
absolut,XSBC $5500,XFD34+
absolut,YSBC $6600,YF934+
indirekt,XSBC ($77,X)E126
indirekt,YSBC ($88),YF125+
+ ... 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 SBC-Befehl führt deshalb bei BCD-Werten zu einem fehlerhaften Ergebnis.