6502 Op-Codes
Archiv
Kurzübersicht
Zahlentabelle
6502 Varianten
6502 Register
Adressierungen
illegale Ops
6502 Bugs
| |
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).
Modus | Syntax | Hex | Länge | Zyklen |
unmittelbar | SBC #$11 | E9 | 2 | 2 |
Zero Page | SBC $22 | E5 | 2 | 3 |
Zero Page,X | SBC $33,X | F5 | 2 | 4 |
absolut | SBC $4400 | ED | 3 | 4 |
absolut,X | SBC $5500,X | FD | 3 | 4+ |
absolut,Y | SBC $6600,Y | F9 | 3 | 4+ |
indirekt,X | SBC ($77,X) | E1 | 2 | 6 |
indirekt,Y | SBC ($88),Y | F1 | 2 | 5+ |
+ ... 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.
| |