| 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.
| |