Instruction en assembleur

Décembre 2016

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 !

A voir également :


Speciale tekens
Speciale tekens
Warunki korzystania z serwisu CCM - szacunek dla innych
Warunki korzystania z serwisu CCM - szacunek dla innych
Ce document intitulé «  Instruction en assembleur  » issu de CommentCaMarche (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.