Fiche de cours

Exécuter une séquence d'instructions

Lycée   >   Premiere   >   NSI   >   Exécuter une séquence d'instructions

  • Fiche de cours
  • Quiz et exercices
  • Vidéos et podcasts
Objectif

Comprendre des instructions du langage machine, le seul langage compréhensible par le processeur.

Points clés
  • 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.
Pour bien comprendre
  • Architecture d’un ordinateur
  • Notions de registres et de mémoires
1. Le fonctionnement général d’un processeur
Le langage machine (ou code machine) est la suite de bits directement utilisable par le processeur, qui compose une suite d’instructions. Cette suite d’instruction permet ainsi d’exécuter des programmes qui sont stockés dans la mémoire de l’ordinateur.
a. Le principe d’exécution d’une instruction machine

Ces instructions, réalisées au rythme de l’horloge du processeur, se font en trois temps.

  1. 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.
  2. 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.
  3. L’instruction est exécutée.
    Cela implique une mise à jour de la valeur dans le registre IP pour continuer le programme.
b. La composition d’une instruction machine
Une instruction machine est une opération élémentaire qu'un programme demande à un processeur d'effectuer.

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.
c. Le type d’instruction machine

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.

Exemple
Voici une portion d’une instruction machine en hexadécimal.
2. L’initiation au langage assembleur

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é.

a. Les sections d’un programme en langage assembleur

Un programme en langage assembleur est constitué de trois parties, appelées sections.

Première section .data
La première section .data définit des zones mémoire non modifiables pour stocker des constantes sous la forme suivante.

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).

Exemple
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)
Deuxième section .bss
La deuxième section .bss réserve des zones mémoire modifiables pour des variables avec les mots clés resb pour un octet, resw pour 2 octets et resd pour 4 octets.
Exemple
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].

Troisième section .text
La dernière section .text contient le programme.
b. Description d’un programme en assembleur

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.

Des instructions de calculs
Ce langage possède des instructions de calculs, qui ont la forme suivante.

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.

Exemples
  • 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.
Les instructions de test et de saut
Le langage assembleur possède une instruction de test entre deux valeurs v1 et v2 :

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.

Si v1 - v2 = 0
Pour indiquer un saut s’il y a égalité, on utilise l’instruction de saut : je adresse.

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.

Si v1 - v2 ≠ 0
Pour indiquer un saut s’il n’y a pas égalité, on utilise la commande jne.

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.
Les instructions de transfert
Le langage assembleur possède des instructions de transfert pour copier et donc déplacer des données entre des registres ou des adresses mémoires.

La commande mov destination, source permet ainsi de copier le contenu de la source dans la destination.
Exemple
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

Évalue ce cours !

 

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.

S’abonner

 

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.

S’abonner

 

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.

S’abonner

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 !

S’abonner

 

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.

S’abonner

 

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 !

S’abonner

Découvrez le soutien scolaire en ligne avec myMaxicours

Plongez dans l'univers de myMaxicours et découvrez une approche innovante du soutien scolaire en ligne, conçue pour captiver et éduquer les élèves de CP à la terminale. Notre plateforme se distingue par une riche sélection de contenus interactifs et ludiques, élaborés pour stimuler la concentration et la motivation à travers des parcours d'apprentissage adaptés à chaque tranche d'âge. Chez myMaxicours, nous croyons en une éducation où chaque élève trouve sa place, progresse à son rythme et développe sa confiance en soi dans un environnement bienveillant.

Profitez d'un accès direct à nos Profs en ligne pour une assistance personnalisée, ou explorez nos exercices et corrigés pour renforcer vos connaissances. Notre assistance scolaire en ligne est conçue pour vous accompagner à chaque étape de votre parcours éducatif, tandis que nos vidéos et fiches de cours offrent des explications claires et concises sur une multitude de sujets. Avec myMaxicours, avancez sereinement sur le chemin de la réussite scolaire, armé des meilleurs outils et du soutien de professionnels dédiés à votre épanouissement académique.

Fiches de cours les plus recherchées

NSI

Comprendre la notion de réseau et de protocole

NSI

Comprendre les protocoles de la couche physique

NSI

Comprendre les protocoles de la couche liaison dans un réseau local

NSI

Comprendre les protocoles de la couche réseau

NSI

Comprendre les protocoles de la couche transport

NSI

Décrire des protocoles de récupération de paquets

NSI

Découvrir le système d'exploitation

NSI

Différencier les principaux systèmes d'exploitation

NSI

Utiliser les commandes de base sur un système d'exploitation

NSI

Gérer les différents droits sur les fichiers