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.