A quoi ressemble un fichier source en assembleur ?

Cours assembleur instructions arithmétiques et logiques, tutoriel & guide de travaux pratiques en pdf.

A quoi ressemble un fichier source en assembleur?

Comme dans tout programme le fichier source doit être saisi de manière rigoureuse. Chaque définition et chaque instruction doivent ainsi s’écrire sur une nouvelle ligne (pour que l’assembleur puisse les différencier) Le fichier source contient:
• Des définitions de données déclarées par des directives (mots spéciaux interprétés par l’assembleur, nous les étudierons plus tard, le but est ici de donner une idée de ce à quoi ressemble un fichier source) Celles-ci sont regroupées dans le segment de données délimité par les directives SEGMENT et ENDS
• Puis sont placées les instructions (qui sont en quelques sorte le cœur du programme), la première devant être précédée d’une étiquette, c’est-à-dire un nom qu’on lui donne. Celles-ci sont regroupées dans le segment d’instructions délimité par les directives SEGMENT et ENDS
• Enfin le fichier doit être terminé par la directive END suivi du nom de l’étiquette de la première instruction (pour permettre au compilateur de connaître la première instruction à exécuter
• (Les points-virgules marquent le début des commentaires, c’est-à-dire que tous les caractères situés à droite d’un point virgule seront ignorés)
Voici à quoi ressemble un fichier source (fichier .ASM):
donnees SEGMENT; voici le segment de données dont l’étiquette est donnees ;Placez ici les déclarations de données donnees ENDS; ici se termine le segment de donnees ASSUME DS:data, CS: code instr SEGMENT; voici le segment d’instructions dont l’etiquette est instr debut: ;placez ici votre premiere instruction (son etiquette est nommée debut) ;Placez ici vos instructions instr ENDS; fin du segment d’instructions END debut; fin du programme suivie de l’etiquette de la premiere instruction.

La déclaration d’un segment

Comme nous le verrons plus loin, les données sont regroupées dans une zone de la mémoire appelé segment de données, tandis que les instructions se situent dans un segment d’instructions. Le registre DS (Data Segment) contient le segment de données, tandis que le registre CS (Code Segment) contient le segment d’instructions. C’est la directive ASSUME qui permet d’indiquer à l’assembleur où se situe le segment de données et le segment de code.
Puis il s’agit d’initialiser le segment de données:
MOV AX, nom_du_segment_de_donnees
MOV DS, AX
Instructions :

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, c’est-à-dire le nombre de bits qu’elle occupe en mémoire dépend de l’instruction et de l’opérande, elle est généralement de quelques octets (1 à 4). 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).

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’affectations 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
Ce type d’instructions porte sur le registre AX (l’accumulateur). Elle 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
• incrémentation: AX = AX + 1
• décrémentation: AX = AX – 1
• décalage à gauche
• décalage à droite
Les branchements conditionnels sont très utiles, notamment pour créer des boucles ou des structures conditionnelles.

Instructions de comparaison
Permet de comparer le registre AX à une donnée. Le résultat de la comparaison est indiquée grâce à … des indicateurs…
Ces instructions (ainsi que les instructions de branchements) sont nécessaires pour permettre une « interactivité », c’est-à-dire qu’en fonction de certains paramètres le programme va pouvoir avoir divers comportement. 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.

Présentation 
Compilation
Instructions
Adressage
Instructions arithmétiques et logiques
Affectation
Branchements
Pile
Procédures
Segmentation de la mémoire
Liste des principales instructions

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *