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
 

6502   Register

RegisterBreiteVerwendung
Akkumulator8 BitStandard-Datenregister
X-Register8 Bitweiteres Datenregister
Y-Register8 Bitweiteres Datenregister
Stapelzeiger8 BitStack-Position
Statusregister8 Bitenthält die Flags
Programcounter16 BitPosition des nächsten Opcodes
 
Der 'Speicher' beinhaltet alle Chips im gesamten Adressbereich, also nicht nur bloß RAM und ROM, sondern auch I/O-Chips. Der Stapel (Stack) ist Teil des Speichers, genauer gesagt der RAM-Bereich von $0100 bis $01FF. Dabei werden die Werte von oben nach unten angelegt – das älterste Byte auf dem Stapel liegt bei $01FF, das zweit älteste bei $01FE usw.

 
Das Statusregister

Im Statusregister liegen die Flags, die den Zustand der letzten logischen bzw. arithmetischen Berechnung wiedergeben. Das Negativ-Flag (N) signalisiert ein negatives Ergebnis. Das Overflow-Flag (V) wird gesetzt, wenn das Ergebnis größer bzw. kleiner ist als das Register. Das Break-Flag (B) wird beim Ausführen des BRK-Befehls gesetzt und beim Rücksprung mit RTI wieder gelöscht. Das Dezimal-Flag (D) ist im Normalmodus gelöscht und im BCD-Modus gesetzt. Das Interrupt-Flag (I) wird bei einem IRQ- oder einem NMI-Signal gesetzt und bei RTI wieder gelöscht. Das Zero-Flag (Z) ist gesetzt, wenn die letzte Berechnung die Zahl '0' ergeben hat, bzw. beim CMP-Befehl der Wert ident ist. Das Carry-Flag (C) ist ein neuntes Bit für Additionen.

76543210
NVBDIZC

Im 6502, wie auch im 6510, wird Bit 5 des Statusregisters nicht verwendet und ist für künftige Entwicklungen freigehalten.