PuceLes registres du 6502

 

Le registre A : sur 8 bits, l'accumulateur, toutes opérations arithmétiques et logiques.

Les registres X et Y : sur 8 bits, un peu moins puissants que l'accumulateur, ils servent surtout comme index (voir modes d'adressages), ou comme compteur.

S : Stack pointer, pointeur de pile. Pointe sur l'adresse de retour lorsque l'on quitte une sous routine. C'est la commande JSR (Jump to SubRoutine) qui stockera l'information automatiquement dans la pile et mettra à jour le registre S. La pile se situe aux adresses $0100 à $01FF.

PC: program counter sur 16 bits, indiquant l'adresse de la prochaine instruction à exécuter.

P : Processor status : 8 bits, tous les résultats de tests. Il n'est pas accessible directement. Ce sont certaines commandes qui permettrons de tester l'état des différents flags de ce registre.

7

6

5

4

3

2

1

0

N

V

 

B

D

I

Z

C

 

N = NEGATIVE, positionné si le 7ième bit est positionné à 1.

V = OVERFLOW, positionné si la somme de deux nombres dépasse +127 ou est inférieur à -128.

B = BREAK COMMAND, positionné à 1 si l'interruption est causé par un BKR, 0 implique alors une interruption externe.

D = DECIMAL MODE, si positionné, on est en mode décimal.

I = IRQ DISABLE, si positionné, les interruptions sont masquées.

Z = ZERO, positionné à un si le résultat d'une commande DEC, INC, ADD, SUB ou LOAD produit 0.

C = CARRY, positionné à 1 si il y a une retenue lors d'une addition, idem pour la soustraction, ou lors d'une rotation, à 0 si le bit sortant est à 0, à 1 sinon.