• Aucun résultat trouvé

Etienne Tremblay

N/A
N/A
Protected

Academic year: 2022

Partager "Etienne Tremblay"

Copied!
8
0
0

Texte intégral

(1)

Etienne Tremblay

Ordinateurs, Structure et Applications

GIF-1001

Université Laval, Hiver 2012

Cours 7, Assembleur, Compilateur

et Éditeur de Liens

(2)

GIF-1001

Assembleur, Compilateurs et Éditeur de liens

Source: http://www.webopedia.com/TERM/l/linker.html. Modifié par Etienne Tremblay

(3)

Assembleur

Définition

– Le langage assembleur permet d’écrire les instructions du

microprocesseur en mnémoniques plutôt qu’en binaire (code machine).

Le langage assembleur est traduit en code machine par un assembleur.

But principal

– Faciliter l’écriture de programmes pour un microprocesseur donné.

Buts secondaires

– Faciliter la création et la gestion de variables.

– Faciliter la création et la gestion de boucles et d’énoncés conditionnels.

– Faciliter la création et la gestion de fonctions.

Niveau d’abstraction et portabilité

– L’assembleur est très près du code machine. Une instruction

d’assembleur correspond habituellement à une instruction machine.

– Un programme en assembleur est indissociable du microprocesseur ou jeu d’instructions pour lequel il a été construit.

Exemples d’assembleur:

– Il existe habituellement un assembleur pour chaque famille de

(4)

GIF-1001

Compilateur et langage de haut niveau

Définition

– Un langage de haut niveau est constitué de chaînes de caractère interprétées par un compilateur afin de générer de l’assembleur et, ultimement, du langage machine.

But principal

– Faciliter l’écriture de programmes et rendre les programmes disponibles sur tous les microprocesseurs pour lesquels il existe un compilateur.

Buts secondaires

– Faciliter la création et la gestion de variables.

– Faciliter la création et la gestion de boucles et d’énoncés conditionnels.

– Faciliter la création et la gestion de fonctions.

Niveau d’abstraction et portabilité

– Les langages de haut niveau sont relativement indépendants du matériel.

Le compilateur transforme habituellement une instruction de haut niveau en plusieurs instructions d’assembleur.

– Un programme en langage de haut niveau peut être compilé pour être utilisé sur plusieurs microprocesseurs.

Exemples: Fortran, Pascal, Basic, C, C++…

(5)

Éditeur de liens (Linker)

Définition

– L’éditeur de liens rassemble toutes les fonctions et variables d’un programme afin de créer l’exécutable. Il agence les éléments du programme provenant de diverses sources (fichiers objets, librairies dynamiques) pour que celui puisse être mis en mémoire par le système d’exploitation.

But principal

– Relier plusieurs segments de code machine afin de constituer un programme.

Buts secondaires

– Déterminer les emplacements en mémoire de chaque composante du programme.

– Faire un lien entre toutes les fonctions et les appels de fonctions.

– Faire un lien entre les variables globales de différents fichiers.

– Faire un lien entre tous les fichiers du programme!

Niveau d’abstraction et portabilité

– Qu’on utilise un assembleur ou un compilateur, il existe toujours un

(6)

GIF-1001

Langage interprété

Définition

– Un langage interprété n’est pas transformé en code machine. Il s’agit de fichiers textes qui sont traduits par un programme (habituellement

nommé un engine) qui « agit » en fonction du contenu des fichiers.

But principal

– Permettre d’avoir des programmes (fichiers textes) totalement indépendants de la plateforme utilisée.

Buts secondaires

– Faciliter la création et la gestion de variables.

– Faciliter la création et la gestion de boucles et d’énoncés conditionnels.

– Faciliter la création et la gestion de fonctions.

Niveau d’abstraction et portabilité

– Presque complètement indépendant du matériel.

– Très haut niveau d’abstraction

Exemples: HTML, Java, Matlab, Labview…

(7)

Comparaisons (assembleur, haut niveau, interprété)

– Un programme en assembleur s’exécutera très rapidement. Un langage interprété sera très lent et un programme en langage de haut niveau se situera entre les deux (plus près de l’assembleur)

– Un programme en assembleur sera très petit. Un programme en langage de haut niveau sera beaucoup plus important. La taille des programmes interprétés dépend largement de la puissance de l’interpréteur.

– Accéder au matériel est très facile en assembleur, faisable avec un

langage de haut niveau, mais peut être ardu avec un langage interprété.

– Programmer en langage de haut niveau ou en langage interprété prend un temps similaire. Programmer en assembleur est éternel…

(8)

GIF-1001

Références et exercices

• Références

– N/A

• Exercices

– Dites, dans vos mots, ce qu’est l’assembleur, un langage de haut niveau et un langage

interprété.

– Qu’est qu’un éditeur de lien? Quel est son

rôle?

Références

Documents relatifs

Écrire un programme en assembleur 8086 qui introduit une chaîne de caractères via le clavier et affiche en résultat le nombre de voyelles

Affiche EXPRESSION LÉGALE si les seuls caractères contenus dans la chaine S sont les caractères numériques, les parenthèses et les opérateurs +, -, %, *, et /.. Sinon, le

• Les données sont regroupées dans une zone de la mémoire appelée segment de données, tandis que les instructions se situent dans un autre segment qui est le

Résumé des instructions sur des chaînes de caractères pour effectuer des opérations avec des opérandes se trouvant dans des locations mémoire. Instruction Mnémonique

Une fois arrivé à l’adresse « SUITE_Fbnc », on ajoute au compteur programme le contenu de « W », ce qui permet de sauter à la ligne qui nous intéresse, dont

; l’instruction qui va suivre se trouvera à cette adresse goto debut ; saut à l’étiquette marquant le début du programme org 0x10 ; cette adresse doit être supérieure

1ère année BTS DSI Prof:EL HADARI zouhair... 1ère année BTS DSI Prof:EL

1ère année BTS DSI Prof:EL HADARI zouhair... 1ère année BTS DSI Prof:EL