[Tutoriel] Initiation à l'assembleur (débutant) part 3
2 participants
Page 1 sur 1
[Tutoriel] Initiation à l'assembleur (débutant) part 3
(Chaprite 2) https://www.gamopat-forum.com/t78109-tutoriel-initiation-a-l-assembleur-debutant-part-2#2027067
Chapitre 3
Le micro-processeur
La mémoire ROM
La mémoire RAM
Les mémoires de type RAM sont des mémoires dont le contenu est dynamique. Il est possible aussi bien d’y inscrire et lire des données que de les modifier. Contrairement au mémoire de type ROM, lorsqu’elles sont mises hors tension, leur contenu s’efface. RAM en anglais signifie « Random Access Memory » (que l’on peut traduire : mémoire accessible en lecture/écriture).
La mémoire compagnon du micro-processeur
Lors de sa mise sous tension, le micro-processeur va chercher le programme de démarrage à une adresse spécifique (en fonction du modèle et du fabricant). Ce programme est le noyau principal de l’ordinateur sur lequel ira se greffer le système d’exploitation.
Sur PC, ce programme de démarrage se dénomme le BIOS. Sur les Mac, ce programme s’appelle l’EFI.
Sur les anciens micros ordinateurs, ce programme de démarrage était inscrit en ROM. De nos jours, une partie de ce programme est inscrit dans une mémoire EEPROM. Tout comme les mémoires de type ROM, leur contenu ne s’efface pas lorsqu’elles ne sont plus alimentées mais peut en revanche être modifié, permettant ainsi de réaliser des mises à jour du programme de démarrage.
Que va chercher un micro-processeur en mémoire ?
Ainsi que nous l’avons évoqué, lors de sa mise sous tension, un micro-processeur pointe sur une adresse mémoire où se trouve le programme de démarrage. Le langage de ce programme est baptisé programme de bas niveau ou code machine.
Ce langage associe des valeurs numériques à des instructions propres à chaque micro-processeur. Le langage machine n’est pas normalisé, il est défini par le constructeur. Même si les technologies ne sont pas fondamentalement différentes entre les constructeurs de micro-processeurs, il est indispensable de se documenter sur chaque nouveau processeur pour lequel on désire développer un programme.
Comment un micro-processeur interprète un programme en mémoire ?
Il existe différentes manières de traiter des données en mémoire pour un micro-processeur en fonction de sa technologie.
Pour exemple, nous partirons sur une architecture simple inspirée de la machine de Turing. La mémoire est représentée tel un ruban divisé en cases dans lesquelles sont inscrites des valeurs numériques binaires correspondant à des instructions :
Ces cases sont associées à des adresses mémoire qui se suivent. Imaginons que ce ruban est le programme de démarrage de notre micro-processeur.
Pour expliquer l’interprétation du programme sur le ruban, nous allons inventer un jeu d’instruction :
La première instruction du ruban demande au micro-processeur de mémoriser la valeur qui suit (soit 001).
La seconde instruction demande au micro-processeur d’ajouter à la valeur mémorisée la valeur 101. La nouvelle valeur mémorisée par le processeur est donc égale à 110 (001 + 101 = 110 en binaire soit 1+5 = 6 en décimal).
La troisième instruction demande au micro-processeur de réaliser une opération logique XOR entre la valeur mémorisée et la valeur qui suit sur le ruban (soit 111). La nouvelle valeur mémorisée devient égale à (110 XOR 111 = 001).
La quatrième instruction est à nouveau une addition entre la valeur mémorisée et 110. La valeur mémorisée devient égale à 111 (001 + 110 = 111 en binaire).
Enfin la dernière instruction (000) demande au programme de s’arrêter.
Les instructions d’un véritable micro-processeur
Chaque micro-processeur possède son jeu d’instructions pouvant être très minimaliste comme très complet. A minima, un micro-processeur possède au moins des instructions de mémorisation, d’arithmétique simple (addition, opération logique), de comparaison et de saut en mémoire.
Les instructions de mémorisation
Pour le traitement des données, les micro-processeurs travaillent rarement directement en mémoire pour des raisons de performance et possèdent des espaces mémoires dédiés nommés « registres ».
Les instructions arithmétiques
Les données mémorisées dans les registres des micro-processeurs peuvent subir des traitements arithmétiques tels que des additions/soustractions, opération logique du type NOT/AND/OR/XOR. Les micro-processeurs très évolués peuvent également réaliser des opérations arithmétiques très poussées comme des calculs matriciels.
Les instructions de comparaison
Un micro-processeur n’est pas qu’une simple unité arithmétique. En effet, il permet également de réaliser des algorithmes sophistiqués où les instructions de comparaison jouent un rôle crucial.
Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème.
Les instructions de saut en mémoire (ou branchement)
De manière générale, les branchements permettent d’exécuter des programmes localisés à d’autres endroits en mémoire.
Lorsqu’une instruction de comparaison donne son verdict (par exemple A
Traitement -> comparaison (A -> branchement (si vrai, suivre le déroulement du programme ; si faux, aller à une nouvelle adresse en mémoire)
Il existe aussi des instructions de branchements implicites qui ne dépendent donc pas d’instructions de comparaison (par exemple goto : aller à l’adresse n).
Conclusion
Nous venons de traiter de manière simplifiée les principes de base d’un micro-processeur. Nous reviendrons plus en détail sur son fonctionnement dans le chapitre lié à la programmation machine.
Chapitre 3
Le micro-processeur
Dans ce chapitre, nous traiterons d’un composant clef de l’ordinateur : le micro-processeur.
Ce dernier, dès sa mise sous tension, a besoin de recevoir des instructions. Il est en perpétuelle exécution de programmes et vit au rythme d’une horloge électronique ne s’arrêtant que lorsque s’éteint l’ordinateur.
Les instructions qu’il interprète ne sont pas aussi évoluées que celles données à un humain mais suffisamment puissantes pour produire les logiciels que vous utilisez au quotidien. L’intelligence artificielle est également issue de ces instructions.
Bien qu’encore loin du cerveau humain, ces milliards de transistors connectés les uns aux autres nous surprennent au fil du temps.
Pourtant, un micro-processeur ne manipule que des nombres. Des nombres inscrits dans une mémoire qui forment ce que l’on appelle un programme informatique.
Des nombres à la programmation
Le micro-processeur est un composant dédié au traitement des données. Ces données sont inscrites dans une mémoire.
Nous nous intéresserons dans ce chapitre à 2 types de mémoire : ROM & RAM.
Comme évoqué dans le chapitre 1, ces mémoires sont structurées ainsi :
Adresse mémoire | Cellules |
0 | 0000 |
1 | 1111 |
2 | 0011 |
3 | 1100 |
… | 1110 |
La mémoire ROM
Les mémoires de type ROM contiennent des données inscrites dès leur fabrication. Elles ne sont ni modifiables ni effaçables. ROM en anglais signifie « Read Only Memory » (mémoire à lecture uniquement). L’avantage de ces mémoires est de conserver ces données même lorsque l’ordinateur n’est plus sous tension.
La mémoire RAM
Les mémoires de type RAM sont des mémoires dont le contenu est dynamique. Il est possible aussi bien d’y inscrire et lire des données que de les modifier. Contrairement au mémoire de type ROM, lorsqu’elles sont mises hors tension, leur contenu s’efface. RAM en anglais signifie « Random Access Memory » (que l’on peut traduire : mémoire accessible en lecture/écriture).
La mémoire compagnon du micro-processeur
Lors de sa mise sous tension, le micro-processeur va chercher le programme de démarrage à une adresse spécifique (en fonction du modèle et du fabricant). Ce programme est le noyau principal de l’ordinateur sur lequel ira se greffer le système d’exploitation.
Sur PC, ce programme de démarrage se dénomme le BIOS. Sur les Mac, ce programme s’appelle l’EFI.
Sur les anciens micros ordinateurs, ce programme de démarrage était inscrit en ROM. De nos jours, une partie de ce programme est inscrit dans une mémoire EEPROM. Tout comme les mémoires de type ROM, leur contenu ne s’efface pas lorsqu’elles ne sont plus alimentées mais peut en revanche être modifié, permettant ainsi de réaliser des mises à jour du programme de démarrage.
Que va chercher un micro-processeur en mémoire ?
Ainsi que nous l’avons évoqué, lors de sa mise sous tension, un micro-processeur pointe sur une adresse mémoire où se trouve le programme de démarrage. Le langage de ce programme est baptisé programme de bas niveau ou code machine.
Ce langage associe des valeurs numériques à des instructions propres à chaque micro-processeur. Le langage machine n’est pas normalisé, il est défini par le constructeur. Même si les technologies ne sont pas fondamentalement différentes entre les constructeurs de micro-processeurs, il est indispensable de se documenter sur chaque nouveau processeur pour lequel on désire développer un programme.
Comment un micro-processeur interprète un programme en mémoire ?
Il existe différentes manières de traiter des données en mémoire pour un micro-processeur en fonction de sa technologie.
Pour exemple, nous partirons sur une architecture simple inspirée de la machine de Turing. La mémoire est représentée tel un ruban divisé en cases dans lesquelles sont inscrites des valeurs numériques binaires correspondant à des instructions :
101 | 001 | 110 | 101 | 001 | 111 | 101 | 110 | 000 |
Pour expliquer l’interprétation du programme sur le ruban, nous allons inventer un jeu d’instruction :
Instruction | Description |
101 | Stocker la valeur numérique qui suit sur le ruban en mémoire et passer à l’instruction suivante |
110 | Ajouter la valeur numérique qui suit en mémoire avec celle déjà mémorisée |
001 | Réaliser une XOR entre la valeur numérique qui suit en mémoire et la valeur mémorisée |
000 | Arrêter le programme |
La première instruction du ruban demande au micro-processeur de mémoriser la valeur qui suit (soit 001).
La seconde instruction demande au micro-processeur d’ajouter à la valeur mémorisée la valeur 101. La nouvelle valeur mémorisée par le processeur est donc égale à 110 (001 + 101 = 110 en binaire soit 1+5 = 6 en décimal).
La troisième instruction demande au micro-processeur de réaliser une opération logique XOR entre la valeur mémorisée et la valeur qui suit sur le ruban (soit 111). La nouvelle valeur mémorisée devient égale à (110 XOR 111 = 001).
La quatrième instruction est à nouveau une addition entre la valeur mémorisée et 110. La valeur mémorisée devient égale à 111 (001 + 110 = 111 en binaire).
Enfin la dernière instruction (000) demande au programme de s’arrêter.
Les instructions d’un véritable micro-processeur
Chaque micro-processeur possède son jeu d’instructions pouvant être très minimaliste comme très complet. A minima, un micro-processeur possède au moins des instructions de mémorisation, d’arithmétique simple (addition, opération logique), de comparaison et de saut en mémoire.
Les instructions de mémorisation
Pour le traitement des données, les micro-processeurs travaillent rarement directement en mémoire pour des raisons de performance et possèdent des espaces mémoires dédiés nommés « registres ».
Les instructions arithmétiques
Les données mémorisées dans les registres des micro-processeurs peuvent subir des traitements arithmétiques tels que des additions/soustractions, opération logique du type NOT/AND/OR/XOR. Les micro-processeurs très évolués peuvent également réaliser des opérations arithmétiques très poussées comme des calculs matriciels.
Les instructions de comparaison
Un micro-processeur n’est pas qu’une simple unité arithmétique. En effet, il permet également de réaliser des algorithmes sophistiqués où les instructions de comparaison jouent un rôle crucial.
Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème.
Les instructions de saut en mémoire (ou branchement)
De manière générale, les branchements permettent d’exécuter des programmes localisés à d’autres endroits en mémoire.
Lorsqu’une instruction de comparaison donne son verdict (par exemple A
Traitement -> comparaison (A -> branchement (si vrai, suivre le déroulement du programme ; si faux, aller à une nouvelle adresse en mémoire)
Il existe aussi des instructions de branchements implicites qui ne dépendent donc pas d’instructions de comparaison (par exemple goto : aller à l’adresse n).
Conclusion
Nous venons de traiter de manière simplifiée les principes de base d’un micro-processeur. Nous reviendrons plus en détail sur son fonctionnement dans le chapitre lié à la programmation machine.
Re: [Tutoriel] Initiation à l'assembleur (débutant) part 3
Je termine chapitre hexadécimale et programmation machine et je postetrucky a écrit:impatient de lire la suite
Sujets similaires
» [Tutoriel] Initiation à l'assembleur (débutant) part 2
» [Tutoriel] Initiation à l'assembleur (débutant)
» Initiation à Programmation
» Initiation aux JV pour un enfant de 3 ans ?
» [Tutoriel] Débuter la programmation avec Löve2D
» [Tutoriel] Initiation à l'assembleur (débutant)
» Initiation à Programmation
» Initiation aux JV pour un enfant de 3 ans ?
» [Tutoriel] Débuter la programmation avec Löve2D
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum