Présentation

Article

1 - LANGAGE D’ASSEMBLAGE

  • 1.1 - Présentation
  • 1.2 - Phases de l’assemblage
  • 1.3 - Exemple d’assemblage
  • 1.4 - Quand programmer en assembleur

2 - ÉDITION DE LIENS

3 - EXÉCUTION ET MISE AU POINT

4 - TECHNIQUES D’OPTIMISATION

  • 4.1 - Lazy linking
  • 4.2 - Développement pour systèmes embarqués
  • 4.3 - Machines virtuelles (byte code )
  • 4.4 - Exécution d’un programme Java
  • 4.5 - Quelques instructions de la JVM

| Réf : H3178 v1

Édition de liens
Assembleur et éditeur de liens

Auteur(s) : Bertrand DUPOUY

Date de publication : 10 mai 2002

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Auteur(s)

  • Bertrand DUPOUY : Enseignant chercheur, ingénieur d’études au département informatique et réseaux,École nationale supérieure des télécommunications (ENST) , Paris

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

Rappelons les différentes phases de la chaîne de développement d’un programme :

  • écriture, à l’aide d’un éditeur, d’un ou plusieurs fichiers sources qui sont rangés sur disque par cet éditeur ;

  • appel à l’assembleur, ou au compilateur, qui va traduire la représentation symbolique des instructions en représentation binaire et associer des adresses aux noms de variables. Le fichier dépositaire de ces informations s’appelle fichier objet, il contient des modules objets ;

  • utilisation de l’éditeur de liens (« linker ») qui prend en entrée un ou plusieurs modules objets pour créer un fichier binaire exécutable. Ce fichier exécutable, comme les fichiers sources et les fichiers objets est automatiquement rangé sur le disque.

Dans le cas des fichiers exécutables et objets, on parle de fichiers binaires pour insister sur le fait qu’ils contiennent des instructions et des données représentées suivant un codage compréhensible par le processeur de la machine. Les fichiers sources, par contre, sont lisibles par l’utilisateur, mais incompréhensibles pour le processeur : ce sont des suites de caractères codés ASCII.

Les fichiers objets peuvent être regroupés dans des fichiers appelés bibliothèques (« libraries »). Quand ces bibliothèques contiennent des objets d’intérêt général, comme les fonctions mathématiques ou les fonctions graphiques, on parle de bibliothèque « système ».

La figure 1 illustre cette construction d’un fichier exécutable à partir de plusieurs fichiers sources.

Pour exécuter un fichier exécutable, on le charge en mémoire. Cela est généralement fait en saisissant au clavier le nom de ce fichier exécutable. Il est alors chargé depuis le disque vers la mémoire par le module du système d’exploitation appelé « loader » ou chargeur.

Le tableau 1 donne les commandes de compilation et d’édition de liens sous Linux en utilisant .

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h3178


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation

2. Édition de liens

L’éditeur de liens rassemble des fichiers objets et des bibliothèques pour créer un fichier dit exécutable, ce dernier pouvant être enrichi par des informations telles que celles nécessaires à l’utilisation d’un debugger.

Pour fusionner les espaces d’adressage séparés des différents modules objets, l’éditeur de liens construit une table qui contient le nom, la taille et la longueur de tous les modules objets, puis il affecte une adresse de chargement à chaque module objet.

L’édition de liens, comme l’assemblage, est un processus qui se déroule en deux phases, appelées passes.

La première passe calcule les tailles des modules objets et collecte les tables de symboles afin de construire un module objet unique doté d’une seule table de symboles. Les adresses des variables sont recalculées. Des informations cachées (glue ), souvent ignorées des programmeurs, sont ajoutées pour le démarrage du programme, l’interface avec le système (fichier objet crt0.o pour le système Unix) et la mise au point.

Les modules objets peuvent être regroupés dans des fichiers appelés bibliothèques (libraries ). Il existe des bibliothèques, dites standards, qui regroupent par famille les fonctions de base proposées par le système : bibliothèques mathématiques, bibliothèques graphiques, bibliothèques réseau, etc. L’éditeur de liens consulte ces bibliothèques standards pour traiter les références non satisfaites, c’est‐à‐dire celles qui ne figurent dans aucun des fichiers objets cités par l’utilisateur, que ce soit sur la ligne de commande ou dans un fichier de commande. Les objets trouvés dans les bibliothèques sont alors ajoutés au fichier objet en cours de construction.

On donne dans l’encadré 7 le fichier exécutable correspondant au fichier de l’encadré 5 :

Encadré 7 – Fichier exécutable désassemblé

80483a0 <main> :

80483a0 :         55               push      %ebp

80483a1 :         89 e5               mov      %esp, %ebp

80483a3 :         c7...

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Édition de liens
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - AHO (A), SETHI (R), ULLMAN (J) -   Compilateurs. Principes, techniques et outils.  -  InterÉditions, Paris (1991).

  • (2) - BLANCHET (G.), DUPOUY (B.) -   Architecture des ordinateurs.  -  Masson, Paris (1992).

  • (3) - LEVINE (J.R.) -   Linkers and loaders.  -  Morgan Kaufmann, San Francisco (2000).

  • (4) - TANNENBAUM (A.) -   Architecture de l’ordinateur.  -  InterÉditions, Paris (1991).

  • (5) - Computer research group, UC Berkeley -   4.4 BSD User’s reference manual.  -  O’Reilly (1994).

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS