Éléments d'architecture des ordinateurs :
travaux pratiques d'assembleur
sur PC Intelx86 sous Linux

Laboratoire d'Informatique fondamentale de Lille
Université des sciences et technologies de Lille
F-59655 Villeneuve d'Ascq CEDEX France

version pdf
version ps




Ces notes constituent un support de travaux pratiques pour un cours d'architecture élémentaire des ordinateurs. Lors de ces séances, il s'agit principalement de programmation assembleur sur des ordinateurs personnels d'architecture intel 32 bits gérés par le système d'exploitation Linux. L'assembleur utilisé est le gnu assembleur et nous utiliserons le gnu debugger pour l'exécution pas à pas et l'examen de la mémoire et des registres.


Ce texte — comme son titre l'indique — vise deux objectifs : Ainsi, ces notes ne prétendent ni à l'exhaustivité — toutes les instructions et possibilités de l'assembleur ne sont pas présentées — ni à apprendre à écrire du code optimal. Cet enseignement est plutôt orienté par la perspective d'en faire une base permettant de comprendre comment un programme — en C par exemple — est exécuté par la machine.


Un bref descriptif du jeu d'instruction des processeurs 32 bits de type intel est disponible en annexe D (pour plus d'information voir [2]). De plus, en utilisant la commande info as dans un interpréteur de commande, on accède au manuel d'utilisation de gas.
Conventions typographiques.
Dans ce document, nous utilisons les conventions suivantes :
Le guide d'utilisation de gas.
Ce document n'est pas un manuel présentant le gnu assembleur ; pour ce faire, nous suggérons l'utilisation du guide d'utilisation accessible depuis un interpréteur de commandes par l'instruction info gas.

Thème 1  Prise en main de l'assembleur gas

L'objectif de cette section est d'écrire, compiler et exécuter — sans trop de douleur — son premier programme assembleur.

Thème 2  Structures de contrôle

Dans notre contexte, on appelle structure de contrôle toute séquence d'instructions qui permet de contrôler la succession des actions d'un programme. En ce qui concerne l'assembleur, il s'agit exclusivement de séquence d'instructions de sauts conditionnels.

Thème 3  Appels systèmes par le biais d'interruptions

Thème 4  Transferts et stockage de données

Thème 5  Appel de fonction et passage d'argument

Annexe A  Index 1

Annexe B  Architecture de type Intel 32 bits

Annexe C  Descriptif des directives

Toutes les directives commencent par un point.

Annexe D  Descriptif des instructions

Pour chaque instruction, nous présentons :

Annexe E  Descriptif des appels système

Annexe F  Récapitulatif des commandes gdb

Références

[1]
Intel Corporation. Intel Architecture Software Developer's Manual : Basis Architecture, 1997.

[2]
Intel Corporation. Intel Architecture Software Developer's Manual : Instruction Set Reference, 1997.




Pour tout commentaire : Alexandre Sedoglavic.
Ce document a été traduit de LATEX par HEVEA