Fonctionnement des instructions
Fait partie de la section Fondamentaux du Journey Assembly de Coddy. Leçon 4 sur 45.
Tu sais que le CPU exécute les instructions une par une. Mais comment le CPU sait-il quelle instruction exécuter ensuite ? Où les instructions sont-elles stockées ? Et à quoi ressemble réellement une instruction ?
Les instructions sont des nombres.
C’est une vérité fondamentale à propos des ordinateurs. Tout est un nombre. Les données avec lesquelles tu travailles (comme le nombre 42) sont un nombre. L’adresse où résident les données (comme 1000) est un nombre. Et les instructions elles-mêmes (comme mov, add, cmp) sont également des nombres.
Lorsque vous écrivez du code assembleur comme mov rax, 5, l’assembleur convertit ce texte lisible par l’être humain en un nombre que le processeur comprend. Ce nombre est appelé un code d’instruction.
Où les instructions sont-elles stockées ?
Les instructions sont stockées en mémoire, tout comme les données. Il n’existe pas d’emplacement spécial pour les instructions. La mémoire contient les deux :
- Données (nombres, caractères, tableaux)
- Instructions (le programme lui-même)
Le CPU ne connaît pas la différence. Il lit simplement ce qui se trouve à l’adresse mémoire indiquée par le Program Counter. Vous avez brièvement découvert le PC dans la leçon 0.1. Il est maintenant temps de comprendre exactement comment il fonctionne.
Le compteur de programme (également appelé pointeur d’instruction) est un registre spécial à l’intérieur du CPU. Son seul rôle est de contenir l’adresse mémoire de la prochaine instruction à exécuter.
Le cycle de récupération-exécution :
Le CPU répète ces trois étapes indéfiniment :
| Étape | Ce qui se passe |
|---|---|
| 1. RÉCUPÉRATION | Lire l’instruction à l’adresse indiquée dans PC |
| 2. EXÉCUTION | Exécuter cette instruction |
| 3. ADVANCE | Déplacer PC vers l’instruction suivante |
Exemple simple :
Si PC = 1000, le CPU :
- Récupère l’instruction à l’adresse 1000
- L’exécute
- Déplace PC vers l’adresse suivante (1000 + taille de l’instruction)
Ensuite, il se répète avec la nouvelle valeur de PC.
À quoi ressemble une instruction :
Chaque instruction comporte deux parties :
| Partie | Ce qu’elle fait | Exemple |
|---|---|---|
| Opcode | Ce qu’il faut FAIRE | mov, add, cmp |
| Opérandes | Sur quoi effectuer l’opération | rax, 5, [result] |
Certaines instructions ont un opérande (comme inc rax pour ajouter 1). Certaines en ont deux (comme mov rax, 5). Certaines en ont trois (comme add rax, rbx, rcx dans certaines architectures).
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
1La Machine
Qu'est-ce qu'un CPULa mémoireRegistres vs MémoireFonctionnement des instructionsLe modèle à deux fichiersL'architecture x86-64Entraînez-vous par vous-même : Playground Assembly