EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire


Conforme à XHTML 1.0 Strict Conforme à CSS!

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Programmer en assembleur

Historique

29 juillet 2010 : Création de cette page sur l'ancien site de Païou.

Difficulté

Pour : un esprit logique et curieux.

 Introduction

L'assembleur est le langage de programmation le plus proche du langage machine. C'est en fait un mnémonique des instructions machine.
Le programme (qui est constitué de lignes de texte) est ensuite assemblé pour donner le code exécutable. Ce n'est pas vraiment une compilation. Le terme de traduction mot à mot serait plus réel.
Il n'est pas utilisé pour faire de grands programmes, ce serait trop pénible.

Pour ma part, je m'y intéresse plutôt pour désassembler les petits programmes d'amorçage sur les disquettes et disques durs.

Vous ne trouverez pas, ici, un cours d'assembleur complet, mais quelques instructions dont j'ai eu besoin.

Une liste plus complète et plus détaillée , Cliquez

 Décomposition d'une instruction

Il faut faire une distinction entre les instructions en code machine et les instructions en assembleur ou mnémonique. Prenons comme exemple le chargement du registre AH avec la valeur 0Dh.

Dans les deux cas, une instruction est composée d'un opérateur et d'un ou plusieurs opérandes :
en mnémonique :MOV AH,0Davec MOV = opérateur, AH et 0D = opérandes.
en code machine :B40DB4 = opérateur, 0D = opérande. Ici, l'opérateur intègre déjà la destination AH.
L'opérateur indique quelle opération il faut effectuer, ici, charger un registre.
Les opérandes indiquent, ici, une destination et une source. On parle d'adressage. Plusieurs formes d'adressage peuvent se présenter.

Haut

 Modes d'adressage

Ce paragraphe donne quelques exemples d'instructions qui utilisent différents modes d'adressage.
Vous pourrez voir le "opcode", le "mnémonique" et la décomposition du opcode en opérateur et opérande(s).
La signification des opérateurs sera donnée plus tard.

Haut

 Quelques instructions

 Chargement de données

Haut

 Gestion de caractères

Haut

 Opérations logiques

Haut

 Afficher

Dans tout programme, il faut pouvoir afficher : pour saisir des données, pour afficher des résultats ...

La gestion de l'affichage, en assembleur, Cliquez

 Gérer la pile

Dans pratiquement tous les programmes on utilise la pile, par exemple avant d'appeler une routine.

La gestion de la pile, en assembleur, Cliquez

Haut