Exécuter une séquence d'instructions
- Fiche de cours
- Quiz et exercices
- Vidéos et podcasts
Comprendre des instructions du langage machine, le seul langage compréhensible par le processeur.
- Un programme est stocké dans la mémoire d’un ordinateur sous la forme d’une suite d’instructions, on appelle cela le langage machine.
- Le langage machine est cependant difficile à utiliser. On passe donc par un assembleur qui va représenter le langage machine par un langage compréhensible par les humains.
- Architecture d’un ordinateur
- Notions de registres et de mémoires
Ces instructions, réalisées au rythme de l’horloge du processeur, se font en trois temps.
-
L’instruction est chargée.
Le CPU (processeur) récupère l’instruction à l’adresse indiquée par le registre IP, puis stocke cela sur le registre IR. -
Le CPU utilise les données du registre
IR.
C’est à ce moment que les données dont le CPU a besoin sont chargées dans d’autres registres ou dans la RAM. -
L’instruction est
exécutée.
Cela implique une mise à jour de la valeur dans le registre IP pour continuer le programme.
Elle est composée de deux parties :
- le champ code opération (« opcode » en abrégé) qui indique au CPU l’opération à effectuer ;
- le champ opérande qui peut
être :
- une valeur immédiate ;
- un registre de la CPU ;
- une donnée à aller chercher dans la RAM.
Pour simplifier, les instructions machines sont de trois types :
- les instructions arithmétiques (addition, soustraction, multiplication, etc.) sur des entiers ou des flottants ;
- les instructions de transferts pour permettre l’acheminement d’une donnée d’un registre du CPU vers la RAM et vice-versa ;
- les instructions de sauts pour permettre de réaliser d’autres opérations.
Ces différentes instructions sont codées en binaire ou en hexadécimal.
Voici une portion d’une instruction machine en hexadécimal.
Le langage machine est très difficile à manipuler, on utilise donc un langage assembleur : ce langage représente le langage machine sous une forme lisible par un humain.
On va utiliser le langage assembleur x86 d’Intel car c’est le langage assembleur le plus documenté.
Un programme en langage assembleur est constitué de trois parties, appelées sections.
adresse typage valeur
Pour le typage (la nature des valeurs), on utilise : db pour un octet (8 bits), dw pour 2 octets (16 bits) et dd pour 4 octets (32 bits).
section .data | La section .data du programme en assembleur |
alpha db 3 | initialise à l’adresse mémoire nommée alpha un mot d’un octet contenant 3. (« db » pour define byte) |
section .bss | La section .bss du programme en assembleur |
a resb 3 | permet de réserver 3 mots de 1 octet à l’adresse a (pour la variable a) |
b db 6 | et permet de réserver un mot d’un octet à l’adresse b (variable b) initialisée à 6. |
Pour utiliser la variable contenue dans la mémoire d’adresse a, on devra taper [a].
Le langage assembleur x86 d’Intel possède 8 registres, qui sont A, B, C, D, E, F, G et H pour simplifier.
Voici quelques instructions associées à ce langage afin de mieux le comprendre.
nom_opération destination, source
Les opérations valides sont add pour additionner, sub pour soustraire, puis and et or pour les opérations logiques.
- add B,1 va permettre d’ajouter la valeur 1 à la valeur B.
- sub A,2 va permettre de soustraire le nombre 2 à la valeur A.
cmp v1, v2.
Cette instruction compare la différence v1 - v2 à 0 et indique le résultat en levant (stockant 1 à l’intérieur) un drapeau, c’est-à-dire en stockant 1 :
- dans un registre nommé zf s’il y a égalité ;
- dans un registre nommé sf s’il n’y a pas égalité.
Ces drapeaux (registres zf et sf) permettent de diriger le saut vers une autre ligne ou vers une boucle du programme.
Cette instruction de saut permet de faire un saut à l’adresse indiquée si le drapeau zf vaut 1, donc s’il y a égalité entre les valeurs testées.
Cette instruction de saut permet de faire un saut à l’adresse indiquée si le drapeau sf vaut 1, donc s’il y n’y a pas égalité entre les valeurs testées.
Il existe aussi :
- l’instruction jg (pour jump greater) pour indiquer un saut si v1 > v2 ;
- l’instruction jl (pour jump lower) pour indiquer un saut si v2 > v1 ;
- et enfin l’instruction jmp (pour jump) pour indiquer un saut sans aucune condition.
La commande mov destination, source permet ainsi de copier le contenu de la source dans la destination.
Langage assembleur | Explication |
mov A, 10 | Copie 10 dans le registre A |
mov B, 5 | Copie 5 dans le registre B |
bcl: | On entre dans une boucle nommée bcl. |
cmp A, B | Comparaison des registres A et B |
je fin | Si A=B, on saute vers la boucle fin. |
add B, 1 |
Ajout
de 1
dans le
registre B Le registre B contient 5 et on ajoute 1, B contient donc la valeur 6. |
fin : | On entre dans une boucle nommée fin. |
mov C, 8 | Copie 8 dans le registre C |
Des quiz et exercices pour mieux assimiler sa leçon
La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.
Des exercices variés pour ne pas s’ennuyer
Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !
Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.
Des quiz pour une évaluation en direct
Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.
myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.
Des vidéos et des podcasts pour apprendre différemment
Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.
Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !
Des podcasts pour les révisions
La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.
Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.
Des vidéos de cours pour comprendre en image
Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !