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
 

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.