Herwig Siebenhofer
 / Home / 6502
 
6502 Op-Codes

   • ADC
   • AND
   • ASL
   • BCC
   • BCS
   • BEQ
   • BIT
   • BMI
   • BNE
   • BPL
   • BRK
   • BVC
   • BVS
   • CLC
   • CLD
   • CLI
   • CLV
   • CMP
   • CPX
   • CPY
   • DEC
   • DEX
   • DEY
   • EOR
   • INC
   • INX
   • INY
   • JMP
   • JSR
   • LDA
   • LDX
   • LDY
   • LSR
   • NOP
   • ORA
   • PHA
   • PHP
   • PLA
   • PLP
   • ROL
   • ROR
   • RTI
   • RTS
   • SBC
   • SEC
   • SED
   • SEI
   • STA
   • STX
   • STY
   • TAX
   • TAY
   • TSX
   • TXA
   • TXS
   • TYA

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

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.