A quoi ressemble une instruction ?

L'instruction est l'élément clé de l'ordinateur car c'est elle qui permet de spécifier au processeur l'action à effectuer. Toutes les instructions sont stockées en mémoire et un compteur dans le processeur permet de passer de l'une à l'autre.
Une instruction est composée de deux éléments :

  • le code opération : action à effectuer par le processeur
  • le champ opérande : donnée ou bien adresse de la case mémoire contenant une donnée

La taille d'une instruction dépend de l'instruction et de l'opérande, elle est généralement de quelques octets (1 à 8). La taille des instructions dépend également de l'architecture du processeur. Elle peut ainsi atteindre 4 octets dans le cas de processeurs 32 bits, voire 8 octets pour les processeurs x86 64 bits. L'octet est l'unité qui est utilisée généralement car elle est pratique pour le stockage de certaines données (notamment les caractères).

code opération champ opérande

Les types d'instructions

L'ensemble des instructions est appelé jeu d'instruction. On peut les répartir selon plusieurs catégories selon le type d'action que son exécution déclenche.

Instructions d'affectation

Les instructions d'affectation permettent de faire des transferts de données entre les registres et la mémoire, c'est-à-dire :

  • soit une écriture (du registre vers la mémoire)
  • soit une lecture (de la mémoire vers un registre)

Instructions arithmétiques et logiques

Ces instructions portent sur le registre AX (l'accumulateur). Elles permettent d'effectuer une opération entre le registre AX et une donnée puis stocker le résultat dans AX. Ces instructions sont :

  • l'addition : AX = AX + donnée
  • la soustraction : AX = AX - donnée
  • l'incrémentation : AX = AX + 1
  • la décrémentation : AX = AX - 1
  • le décalage à gauche
  • le décalage à droite

Instructions de comparaison

Permet de comparer le registre AX à une donnée. Le résultat de la comparaison est indiqué grâce à... des indicateurs...
Ces instructions (ainsi que les instructions de branchement) sont nécessaires pour permettre une « interactivité », c'est-à-dire qu'en fonction de certains paramètres le programme va pouvoir avoir divers comportements. Sans ces indicateurs les programmes auraient un comportement déterminé et le programme ferait constamment les mêmes actions (comme un film...).

Instructions de branchement

Ce type d'instruction permet de sauter à une instruction non consécutive à l'instruction en cours. En l'absence de ce type d'instruction le processeur passe automatiquement à l'instruction suivante (c'est-à-dire l'instruction contiguë (en mémoire) à l'instruction en cours). C'est le registre IP qui repère l'instruction suivante à exécuter. Les instructions de branchement permettent donc de modifier la valeur de ce registre et ainsi de choisir la prochaine instruction à exécuter.

On distingue deux sortes de branchements :

  • Les branchements conditionnels : en fonction d'une condition à satisfaire le processeur traitera le branchement indiqué ou l'instruction suivante.
    • condition satisfaite : exécution de l'instruction située à l'adresse indiquée
    • condition non satisfaite : exécution de l'instruction suivante
    Les branchements conditionnels sont très utiles, notamment pour créer des boucles ou des structures conditionnelles.
  • Les branchements inconditionnels : on affecte une valeur définie au registre IP, c'est-à-dire que l'on ira exécuter l'instruction vers laquelle il pointe après celle en cours quoi qu'il arrive !


Dernière modification le mardi 14 octobre 2008 à 17:40:29.Ce document intitulé « Instruction en assembleur » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Meilleures réponses pour « Instruction en assembleur » dans :
Liste des instructions en assembleur Voir Tableau des principales instructions en assembleur Voici une liste (non exhaustive) des principales instructions en assembleur des processeurs 80x86, ainsi que du code machine qui leur est associé et de leur taille en mémoire. Les valeurs val et...
Assembleur - Multiplication par une constante VoirEn assembleur vous pouvez effectuer une multiplication en utilisant les instructions mul (nombres non signés) et imul. On l'utilise ainsi: mul nom_registre Ensuite en interne, le processeur multiplie le contenu de eax ou ax ou al (selon la taille...
[Photofiltre]Réaliser un assemblage de 2 images VoirPhotofiltre est un logiciel de retouche d'image. Cette astuce fonctionne aussi bien avec Photofiltre qu'avec Photofiltre Studio Dans ce cas précis, Photofiltre va permettre d'assembler un collage c'est-à-dire de coller une deuxième image (en...
Exercice assembleur x86 nombre premier VoirIntroduction Notions abordées dans cet exercice Enoncé Rappel Corrigé Explication Introduction Ce petit exercice d'assembleur vise les architectures x86 (Processeurs Intel et Amd 32 bits) et utilise la syntaxe de Nasm, un assembleur...
Instructions arithmétiques et logiques en assembleur VoirLes instructions arithmétiques et logiques sont effectuées par l'unité arithmétique et logique. Il s'agit d'opérations directement effectuées sur les bits de la donnée que l'on traite. Sont comprises dans cette appellation : les instructions...
Branchements en assembleur VoirOn appelle saut (ou branchement) en assembleur le fait de passer à une instruction autre que celle qui suit celle en cours en mémoire. En effet, en temps normal (c'est-à-dire sans instruction contraire) le processeur exécute les instructions...
Les procédures en assembleur VoirLa notion de procédure En langage assembleur, on appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la procédure. Cette notion de sous-programme est généralement appelée fonction dans d'autres...