6510 Assembly Explainer

Comprendre le processeur du Commodore 64, une instruction à la fois

Apprendre la programmation assembleur 6510 sur le Commodore 64

L'assembleur était la clé qui permettait d'exploiter tout le potentiel du C64. Chaque jeu rapide, chaque effet de demoscène et chaque morceau SID a été écrit par des programmeurs qui s'adressaient directement au processeur 6510.

Ce guide t'enseigne l'assembleur 6510 pas à pas. Saisis le code dans l'éditeur, regarde le résultat et parcours les exemples à ton rythme.

Aucune installation requise. Le simulateur fonctionne entièrement dans le navigateur et prend en charge les instructions 6510 les plus courantes, du chargement de valeurs et des calculs jusqu'à l'incrémentation de compteurs et au transfert de données entre registres.

6510 ASSEMBLY EXPLAINER
01Simuler des instructions 6510 en temps réel
02Observer les registres et les flags en direct
03Parcourir trois programmes exemples pas à pas
04Référence complète des instructions avec explications
05Lectures et écritures mémoire incluses
06Fonctionne entièrement dans le navigateur

Acheter sur Amazon

Trouve du matériel Commodore, des jeux, des livres et des accessoires. Tout le catalogue sur Amazon.

Parcourir sur Amazon

Le langage assembleur et le processeur MOS 6510

Le langage assembleur se situe juste au-dessus du code machine. Chaque instruction correspond directement à une seule opération que le CPU peut effectuer : charger une valeur, additionner deux nombres, stocker un résultat. Le 6510 du C64 est un processeur 8 bits, ce qui signifie qu'il travaille avec des valeurs comprises entre 0 et 255 à la fois.

Le 6510 est une variante du MOS 6502, la même famille de processeurs que l'Apple II, le BBC Micro et les ordinateurs Atari 8 bits. Commodore l'a choisi parce qu'ils possédaient MOS Technology, la société qui l'avait conçu. Le 6510 a ajouté un port I/O 8 bits utilisé pour le bank-switching : le mécanisme qui permet au C64 de basculer entre ROM et RAM dans le même espace d'adressage.

Apprendre l'assembleur 6510 permet de comprendre pourquoi les jeux C64 étaient si rapides, comment le matériel a été poussé bien au-delà de ses limites prévues, et pourquoi la programmation 8 bits est encore étudiée et pratiquée par des passionnés aujourd'hui.

L'organisation de la carte mémoire du C64
Commodore 64 PAL motherboard showing the MOS 6510 CPU chip alongside the VIC-II and SID
The Commodore 64 breadbin from 1982, whose 6510 processor gave programmers a compact, powerful instruction set

Les registres du 6510 : où le CPU fait son travail

Un registre est un tout petit espace de stockage intégré directement dans le processeur, bien plus rapide d'accès que n'importe quelle adresse mémoire. Le 6510 possède trois registres de travail. L'Accumulateur (A) est le registre principal : presque toutes les opérations arithmétiques et logiques y transitent. Les registres d'index X et Y servent au comptage, aux boucles et à l'adressage.

Le Stack Pointer (SP) pointe vers le sommet de la pile matérielle, la zone mémoire que le CPU utilise automatiquement lors des appels de sous-programmes et de la gestion des interruptions. Le Program Counter (PC) contient l'adresse de la prochaine instruction que le CPU exécutera.

Le Status Register contient un ensemble de flags d'un bit. Les plus importants sont Zero (Z), activé quand le dernier résultat est nul ; Negative (N), activé quand le bit de poids fort du résultat est à 1 ; et Carry (C), utilisé dans les calculs sur plusieurs octets et comme flag booléen polyvalent.

L'histoire du Commodore 64

Simulateur assembleur 6510

Saisis une instruction 6510 et appuie sur RUN pour l'exécuter, ou sélectionne un programme exemple et parcours-le instruction par instruction. L'affichage des registres se met à jour après chaque étape.

REGISTRES

A

$00

X

$00

Y

$00

SP

$FF

PC

$0801

N

0

Z

1

C

0

V

0

ESSAYER UNE INSTRUCTION

Tape une instruction et appuie sur RUN ou Entrée. Essaie : LDA #$42, INX, ADC #$0A

EXEMPLES DE PROGRAMMES

Sélectionne un programme ci-dessus, puis utilise STEP pour l'exécuter instruction par instruction.

RÉFÉRENCE DES INSTRUCTIONS

LDALDA #$nn / LDA $nn

Charger une valeur dans l'accumulateur. En mode immédiat (LDA #$42), la valeur est chargée directement. En mode page zéro (LDA $20), l'octet stocké à cette adresse mémoire est chargé.

FLAGS : N, Z

LDXLDX #$nn / LDX $nn

Charger une valeur dans le registre X.

FLAGS : N, Z

LDYLDY #$nn / LDY $nn

Charger une valeur dans le registre Y.

FLAGS : N, Z

STASTA $nn

Écrire la valeur de l'accumulateur à une adresse mémoire. A reste inchangé.

FLAGS : None

STXSTX $nn

Écrire le registre X à une adresse mémoire.

FLAGS : None

STYSTY $nn

Écrire le registre Y à une adresse mémoire.

FLAGS : None

**** FREQUENTLY ASKED QUESTIONS ****

READY.

Découvrir d'autres outils du C64 Lab

Compose ta propre musique SID, programme ton propre sprite ou crée un effet visuel directement dans ton navigateur.

Ouvrir le C64 Lab