Site logo

Triceraprog
La programmation depuis le Crétacé

Adressage 6502, un récapitulatif ()

Si vous aussi vous jetez régulièrement un œil sur les adressages possibles et valides pour le 6502, voici un tableau récapitulatif qui pourra vous servir. En tout cas, il me servira.

Tableau Récapitulatif

Mode Syntaxe Exemple Taille Cycles Notes
Implicite OP RTS 1 2-6 -
Accumulateur OP A LSR A 1 2 -
Immédiat OP #nn LDA #$42 2 2 Constante
Page Zéro OP $nn LDA $80 2 3-5 Rapide
Page Zéro,X OP $nn,X LDA $80,X 2 4-6 Wrapping en page 0
Page Zéro,Y OP $nn,Y LDX $10,Y 2 4 LDX/STX uniquement
Absolu OP $nnnn LDA $1234 3 4-6 -
Absolu,X OP $nnnn,X LDA $2000,X 3 4-7 +1 si page crossed
Absolu,Y OP $nnnn,Y LDA $3000,Y 3 4-7 +1 si page crossed
Relatif OP label BEQ Loop 2 2-4 Branches uniquement
Indirect JMP ($nnnn) JMP ($FFFC) 3 5 JMP uniquement
Indexed Indirect OP ($nn,X) LDA ($40,X) 2 6 X ajouté d'abord
Indirect Indexed OP ($nn),Y LDA ($40),Y 2 5-6 Y ajouté après

($nn,X) vs ($nn),Y

Indexed Indirect vs. Indirect Indexed, ma source de confusion préférée.

Écriture ($nn,X) ($nn),Y
Évaluation X ajouté avant lecture Y ajouté après lecture
Calcul addr = read16(($nn+X)&$FF) addr = read16($nn)+Y
Wrapping X wrappe en page 0 Y sur 16-bit complet
Usage typique Tables de pointeurs, dispatch Tableaux, structures

Références

Les deux pages sur lesquelles je vais régulièrement :