SlideShare a Scribd company logo
1 of 42
Download to read offline
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
Pr. A. ELMOUNADI
Architecture des Ordinateurs
CLE Informatique - Semestre 4
2021 - 2022
CHAPITRE 5:
L’ASSEMBLEUR
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Le langage Assembleur est un langage de programmation dit « de bas
niveau », car il est intimement lié à l’architecture du Microprocesseur
auquel il est destiné.
 Afin de pouvoir programmer en Assembleur, il est nécessaire de disposer
d’un programme d’assemblage. Ce programme joue plus ou moins le
rôle d’un compilateur par rapport à des langages de haut niveau (ou
encore des langages dits de la 3ème génération).
Architecture des Ordinateurs 2
INTRODUCTION
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Par exemple, pour le cas de l’architecture x86, il existe plusieurs
programmes d’assemblage qui respectent le Jeu d’instructions pour cette
architecture :
 Turbo Assembler (TASM) de Borland.
 Microsoft Marco Assembler (MASM) de Microsoft
 Netwide Assembler (NASM)
 Gnu Assembler (GAS)
 Flat Assembler (FASM), etc.
Architecture des Ordinateurs 3
INTRODUCTION
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Dans ce cours, Nous utilisons le TASM dans sa version destinée au 80x86
(16 bits).
 D’une part, ce choix est motivé par la simplicité relative de l’architecture
8086, ce qui permet d’apprendre plus facilement la logique de la
programmation en Assembleur.
 D’autre part, le TASM offre une syntaxe claire tout en respectant le Jeu
d’instructions du 8086 comme mentionné auparavant.
Architecture des Ordinateurs 4
INTRODUCTION
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Enfin, il faut garder à l’esprit que l’Assembleur reste un langage de bas
niveau qui est généralement utilisé pour l’écriture des programmes
destinés à la gestion du matériel (Pilotes de périphériques, Noyaux de
Systèmes d’Exploitation, etc.).
Architecture des Ordinateurs 5
INTRODUCTION
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Turbo Assembler (TASM) est un Assembleur créé par la société Borland
en 1989. il permet de produire des programmes compatibles avec la
plateforme Windows, et plus précisément avec MS-DOS.
 TASM est lui-même un programme 16 bits. Il est fourni avec un linker
(Turbo Linker) qui permet d’effectuer l’édition des liens et un débogueur
(Turbo Debugger) pour permettre l’analyse des programmes.
Architecture des Ordinateurs 6
TURBO ASSEMBLER
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 La structure générale d’un programme écrit en TASM est organisée en 5
sections :
Architecture des Ordinateurs 7
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
dosseg
 Cette directive provoque la mise en ordre des différents segments du
programme afin de respecter les conventions d'organisation de Microsoft
pour assurer éventuellement le bon fonctionnement du programme.
 Néanmoins, cette directive reste optionnelle.
Architecture des Ordinateurs 8
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
.model
 Permet de spécifier le modèle mémoire qui sera utilisé par le programme.
Il en existe 6:
1) tiny : Signifie que le segment de données (DS) ainsi que le segment de code
(CS) vont utiliser un même segment de mémoire de la taille de 64 Ko. Par
conséquent, un programme qui respecte ce modèle aura au maximum une
taille de 64 Ko. Ce modèle était utilisé sous MS-DOS et les programmes qui
l’utilisaient avaient l’extension « .COM ».
Architecture des Ordinateurs 9
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
.model
2) small : Il s’agit du modèle qui est généralement le plus utilisé et qui signifie
que CS et DS vont occuper chacun un espace mémoire de 64 Ko.
3) medium : Signifie que CS va utiliser plusieurs segments alors que DS ne va
en utiliser qu’un seul (de taille 64 Ko).
4) compact : Signifie que DS va utiliser plusieurs segments alors que CS ne va
en utiliser qu’un seul (i.e. l’inverse du modèle medium).
Architecture des Ordinateurs 10
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
.model
5) large : l’utilisation de ce modèle implique que CS et DS vont pouvoir
utiliser chacun plusieurs segments de mémoire.
6) huge : Ce modèle est utilisé lorsque le programme a recours à des structures
de données qui dépassent la taille d’un segment de mémoire (i.e. 64 Ko).
 Exemple d’utilisation:
Architecture des Ordinateurs 11
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
.stack
 Cette directive permet de spécifier la taille de la pile qui sera utilisée avec
le programme.
 Exemple d’utilisation :
Architecture des Ordinateurs 12
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
.data
 Lorsqu’il faut déclarer des variables ou des constantes utilisées dans le
programme, il faut les déclarer au niveau de cette section. Cette section
doit ensuite être connectée au segment de données (DS).
 Un programme peut tourner sans la présence de cette section (au cas où il
n’y a pas de données à déclarer).
 Pour voir des exemples d’utilisation de cette section, se référer à la partie
« Section de données ».
Architecture des Ordinateurs 13
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
.code
 Cette section joue un rôle central, car elle contient la suite des instructions
qui constituent le cœur du programme.
 Pour voir des exemples de l’utilisation de cette section, se référer à la
partie « section de code ».
Architecture des Ordinateurs 14
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Le code du programme doit se terminer avec la directive « end ». Toute
instruction se trouvant après cette directive sera ignoré lors de la phase
d’assemblage.
 Après avoir écrit un programme en Turbo Assembleur, ce dernier est
enregistré dans un fichier portant l’extension « .ASM ».
 Parfois, vous pouvez rencontrer des fichiers portant l’extension « .S »
(Convention d’usage dans les environnements Linux en utilisant NASM
ou GAS).
Architecture des Ordinateurs 15
STRUCTURE D’UN PROGRAMME EN TASM
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 16
SECTION DE DONNÉES
1 Octet 8 bits
1 Mot 16 bits
1 Double Mot 32 bits
 Comme nous l’avons précisé auparavant, la déclaration des variables doit
se faire au niveau de la section de données (.data).
 Contrairement aux langages de haut niveau où les variables peuvent avoir
un type, la déclaration des variables en Assembleur se limite à spécifier la
taille qui sera occupée par ces dernières. Les tailles possibles sont : Octet,
Mot, et Double Mot.
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 La syntaxe utilisée pour déclarer une variable est la suivante :
<étiquette> <type de donnée> <initialisation> <;commentaire>
 L'étiquette joue le rôle d'identificateur. Elle porte le nom de la variable.
 Le type de donnée peut être égal à l’un des mots-clés suivants :
 db pour une donnée codée sur un Octet.
 dw pour une donnée codée sur un Mot (2 octets).
 dd pour une donnée qui codée sur un Double Mot (4 octets).
Architecture des Ordinateurs 17
SECTION DE DONNÉES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 L'initialisation reflète :
 Soit un contenu concret initialisant la donnée déclarée. Dans le cas des
valeurs numériques (les nombres), ils doivent être repérés par rapport à leurs
bases. Par défaut, les valeurs numériques sont considérées comme des
décimaux.
 Soit un point d'interrogation ( ? ) indiquant que la donnée n'a pas été
initialisée.
 Un commentaire commence par un point virgule ( ; ) et doit figurer sur
une seule ligne.
Architecture des Ordinateurs 18
SECTION DE DONNÉES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Exemples:
Architecture des Ordinateurs 19
SECTION DE DONNÉES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Les constantes:
 En Assembleur, les constantes sont déclarées via le mot-clé « equ ».
 En réalité, le mot-clé equ va uniquement permettre de substituer une
valeur ou un traitement par une étiquette au moment de l’assemblage du
code. Du coup, il ne serait pas faux de trouver ce mot-clé même au niveau
de la section de code.
 Mais généralement, nous l’utilisons pour fixer des valeurs constantes.
Architecture des Ordinateurs 20
SECTION DE DONNÉES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Les constantes:
 Exemple :
Architecture des Ordinateurs 21
SECTION DE DONNÉES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Syntaxe d’une ligne d’instruction:
<étiquette:> <opération> <opérandes> <;commentaire>
 L'étiquette permet de localiser un emplacement au niveau du code. Il
s'agit d'un identificateur suivi de 2 points ( : ) qui est utile pour effectuer
des sauts.
 La partie <opération> représente l'une des opérations décrites dans le
Jeu d’instruction du Microprocesseur cible.
Architecture des Ordinateurs 22
SECTION DE CODE
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Les opérandes reflète les opérandes de l'instruction en question. Le
nombre d’opérandes est soit 0, 1 ou 2. Si l’opération demande 2
opérandes, alors ces derniers sont séparés par une virgule ( , ). À noter
aussi que dans le cas présent, le 1er opérande est un opérande de
Destination et que le 2ème est un opérande Source, et que ces 2 opérandes
doivent être compatibles, i.e. ils doivent être de la même taille mémoire.
 Exemples :
Architecture des Ordinateurs 23
SECTION DE CODE
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Les types d’opérandes permis :
 Registre : AX (AH, AL), BX (BH, BL), CX (CH, CL), DX (DH, DL),
DI, SI, BP, SP.
 Le registre IP ne peut pas être manipulé de manière explicite.
 Registre de segment : DS, ES, SS, CS
 Pour le registre CS, celui-ci ne peut être utilisé que comme register source.
 Emplacement Mémoire : [BX], [SI], [DI], [BP], [BX+SI], variable, etc.
 Valeur immédiate : par exemple 5, -24, 3Fh, 10001101b, etc.
Architecture des Ordinateurs 24
SECTION DE CODE
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Le contrôle du déroulement du programme est une chose très importante.
En effet, il est parfois nécessaires de modifier le flux d’exécution du
programme selon certaines conditions.
 À cet effet, nous aurons besoin d’utiliser ce que l’on appelle « les sauts de
contrôle ».
Architecture des Ordinateurs 25
LES SAUTS DE CONTRÔLE
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Un saut inconditionnel permet de sauter directement vers un
emplacement du code sans condition préalable.
 Un saut inconditionnel est effectué grâce à l’instruction « JMP ». Il
s’agit de l’équivalent du mot-clé « GOTO » en langage C.
 Exemple: où « _label » représente une étiquette qui
marque un certain emplacement dans le code.
Architecture des Ordinateurs 26
LES SAUTS DE CONTRÔLE
LES SAUTS INCONDITIONNELS
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 27
LES SAUTS DE CONTRÔLE
LES SAUTS INCONDITIONNELS
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Contrairement à l'instruction « JMP » qui effectue un saut
inconditionnel, il existe des instructions qui effectuent des sauts
uniquement lorsque certaines conditions sont remplies.
 Les conditions qui vont orienter les sauts sont vérifiées sur la base des
valeurs des drapeaux (flags) du registre d’états qui vont à leur tour
dépendre du résultat de la dernière instruction exécutée. Mais
généralement, nous faisons appel à l’instruction « CMP » pour
effectuer une comparaison.
Architecture des Ordinateurs 28
LES SAUTS DE CONTRÔLE
LES SAUTS CONDITIONNELS
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 En réalité, l’instruction CMP se comporte tout à fait comme SUB, sauf
qu’elle ne retourne pas de résultat dans l’opérande de destination.
 Exemple :
Architecture des Ordinateurs 29
LES SAUTS DE CONTRÔLE
LES SAUTS CONDITIONNELS
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 30
LES SAUTS DE CONTRÔLE
LES SAUTS CONDITIONNELS
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 31
LES SAUTS DE CONTRÔLE
LES SAUTS CONDITIONNELS
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 32
LES SAUTS DE CONTRÔLE
LES SAUTS CONDITIONNELS
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Le langage Assembleur offre également un moyen pour faciliter l’usage
des boucles: l’instruction « loop » (et ses variantes).
 À la base, les boucles sont les mêmes que les sauts, et il est tout à fait
possible de coder des boucles en utilisant uniquement des sauts
conditionnels et des comparaisons.
 Les boucles utilisent le registre CX pour compter les itérations.
Architecture des Ordinateurs 33
LES SAUTS DE CONTRÔLE
LES BOUCLES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 34
LES SAUTS DE CONTRÔLE
LES BOUCLES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 35
LES PILES
 Une pile est un emplacement mémoire où sont stockées des données de
manière à ce que l’accès à celle-ci s’effectue en mode LIFO (Last In First
Out).
 Ainsi, le pointeur de pile SP (en combinaison avec le segment de pile SS)
pointe vers le dessus de la pile (Top of stack).
 Les piles sont très utiles pour le traitement des interruptions, car elles
permettent de mémoriser la valeur de CS:IP pour reprendre le
déroulement du programme par la suite (ici, l’usage de la pile est
implicite).
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 36
LES PILES
 En outre, elles peuvent également servir lors des appels de procédures et
des sous routines (ici, l’usage de la pile est explicite).
 Les opérations qui permettent de manipuler les données de la pile sont
PUSH et POP. Ces opérations acceptent des opérandes de 2 octets:
 PUSH permet d’empiler des données sur la pile.
 POP permet de récupérer (dépiler) des données de la pile.
 Exemple:
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 37
LES MACROS
 Parfois, il s’avère que nous employons une suite d’instructions récurrente
tout au long de notre programme.
 Afin de factoriser l’usage de cette suite récurrente d’instructions,
l’Assembleur nous offre la possibilité de l’écrire sous forme de Macro.
 Au moment de l’assemblage, la macro en question sera remplacée par son
code correspondant à chaque fois qu’elle sera rencontrée.
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
Architecture des Ordinateurs 38
LES MACROS
 Exemple d’une macro appelée « traitement » avec 3 paramètres:
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Une procédure représente une sous routine appelée à partir du programme
pour effectuer un certain nombre de traitements.
 Pour appeler une procédure, nous utilisons le mot-clé « call ».
 Le passage de paramètres pour une procédure se fait de 2 manières
principales:
 Par registres
 Par pile
Architecture des Ordinateurs 39
LES PROCÉDURES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Le passage par registres est simple mais peu efficace car il participe à
l’occupation des registres qui peuvent être utilisés dans d’autres
traitements.
 Le passage par pile est le plus préconisé, il est d’ailleurs le mécanisme
employé par les langages de haut niveau.
Architecture des Ordinateurs 40
LES PROCÉDURES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Exemple de l’utilisation d’une procédure avec passage d’arguments par
pile :
Architecture des Ordinateurs 41
LES PROCÉDURES
Université Mohammed V de Rabat
École Normale Supérieure de Rabat
Département d’Informatique
CLE Informatique
L’ASSEMBLEUR
 Exemple de l’appel de la procédure précédente avec passage par pile :
Architecture des Ordinateurs 42
LES PROCÉDURES

More Related Content

Similar to AO-Chapitre-5.pdf AO-Chapitre-5.pdf AO-Chapitre-5.pdf

Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Chap1_PresentationJava.pdf
Chap1_PresentationJava.pdfChap1_PresentationJava.pdf
Chap1_PresentationJava.pdfsayf7
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...ABES
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Arnaud Auroux
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptxRihabBENLAMINE
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxOlyvierNzighou1
 
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.pptMohamed827334
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurssarah Benmerzouk
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxOlyvierNzighou1
 
[FR] Guide de codage des programmes automates
[FR] Guide de codage des programmes automates[FR] Guide de codage des programmes automates
[FR] Guide de codage des programmes automatesItris Automation Square
 
Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfbenfifiaymen36
 
Cours langage C et C++
Cours langage C et C++Cours langage C et C++
Cours langage C et C++mohamednacim
 

Similar to AO-Chapitre-5.pdf AO-Chapitre-5.pdf AO-Chapitre-5.pdf (20)

Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Chap1_PresentationJava.pdf
Chap1_PresentationJava.pdfChap1_PresentationJava.pdf
Chap1_PresentationJava.pdf
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
openFrameworks
openFrameworksopenFrameworks
openFrameworks
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Wygday 2008
Wygday 2008Wygday 2008
Wygday 2008
 
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
 
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
 
[FR] Guide de codage des programmes automates
[FR] Guide de codage des programmes automates[FR] Guide de codage des programmes automates
[FR] Guide de codage des programmes automates
 
Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdf
 
Cours langage C et C++
Cours langage C et C++Cours langage C et C++
Cours langage C et C++
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
 

Recently uploaded

Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptxTxaruka
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfOssamaLachheb
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024IEN_Jonzac
 
Exemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste AuditExemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste Audittechwinconsulting
 
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfDafWafia
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024frizzole
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxAbderrahim GHASSOUB
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptxTxaruka
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxAbderrahim GHASSOUB
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseTxaruka
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbainesSocratis Vasiopoulos
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Pedago Lu
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"ArchivesdeLyon
 

Recently uploaded (13)

Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptx
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdf
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
Exemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste AuditExemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste Audit
 
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 

AO-Chapitre-5.pdf AO-Chapitre-5.pdf AO-Chapitre-5.pdf

  • 1. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique Pr. A. ELMOUNADI Architecture des Ordinateurs CLE Informatique - Semestre 4 2021 - 2022 CHAPITRE 5: L’ASSEMBLEUR
  • 2. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Le langage Assembleur est un langage de programmation dit « de bas niveau », car il est intimement lié à l’architecture du Microprocesseur auquel il est destiné.  Afin de pouvoir programmer en Assembleur, il est nécessaire de disposer d’un programme d’assemblage. Ce programme joue plus ou moins le rôle d’un compilateur par rapport à des langages de haut niveau (ou encore des langages dits de la 3ème génération). Architecture des Ordinateurs 2 INTRODUCTION
  • 3. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Par exemple, pour le cas de l’architecture x86, il existe plusieurs programmes d’assemblage qui respectent le Jeu d’instructions pour cette architecture :  Turbo Assembler (TASM) de Borland.  Microsoft Marco Assembler (MASM) de Microsoft  Netwide Assembler (NASM)  Gnu Assembler (GAS)  Flat Assembler (FASM), etc. Architecture des Ordinateurs 3 INTRODUCTION
  • 4. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Dans ce cours, Nous utilisons le TASM dans sa version destinée au 80x86 (16 bits).  D’une part, ce choix est motivé par la simplicité relative de l’architecture 8086, ce qui permet d’apprendre plus facilement la logique de la programmation en Assembleur.  D’autre part, le TASM offre une syntaxe claire tout en respectant le Jeu d’instructions du 8086 comme mentionné auparavant. Architecture des Ordinateurs 4 INTRODUCTION
  • 5. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Enfin, il faut garder à l’esprit que l’Assembleur reste un langage de bas niveau qui est généralement utilisé pour l’écriture des programmes destinés à la gestion du matériel (Pilotes de périphériques, Noyaux de Systèmes d’Exploitation, etc.). Architecture des Ordinateurs 5 INTRODUCTION
  • 6. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Turbo Assembler (TASM) est un Assembleur créé par la société Borland en 1989. il permet de produire des programmes compatibles avec la plateforme Windows, et plus précisément avec MS-DOS.  TASM est lui-même un programme 16 bits. Il est fourni avec un linker (Turbo Linker) qui permet d’effectuer l’édition des liens et un débogueur (Turbo Debugger) pour permettre l’analyse des programmes. Architecture des Ordinateurs 6 TURBO ASSEMBLER
  • 7. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  La structure générale d’un programme écrit en TASM est organisée en 5 sections : Architecture des Ordinateurs 7 STRUCTURE D’UN PROGRAMME EN TASM
  • 8. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR dosseg  Cette directive provoque la mise en ordre des différents segments du programme afin de respecter les conventions d'organisation de Microsoft pour assurer éventuellement le bon fonctionnement du programme.  Néanmoins, cette directive reste optionnelle. Architecture des Ordinateurs 8 STRUCTURE D’UN PROGRAMME EN TASM
  • 9. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR .model  Permet de spécifier le modèle mémoire qui sera utilisé par le programme. Il en existe 6: 1) tiny : Signifie que le segment de données (DS) ainsi que le segment de code (CS) vont utiliser un même segment de mémoire de la taille de 64 Ko. Par conséquent, un programme qui respecte ce modèle aura au maximum une taille de 64 Ko. Ce modèle était utilisé sous MS-DOS et les programmes qui l’utilisaient avaient l’extension « .COM ». Architecture des Ordinateurs 9 STRUCTURE D’UN PROGRAMME EN TASM
  • 10. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR .model 2) small : Il s’agit du modèle qui est généralement le plus utilisé et qui signifie que CS et DS vont occuper chacun un espace mémoire de 64 Ko. 3) medium : Signifie que CS va utiliser plusieurs segments alors que DS ne va en utiliser qu’un seul (de taille 64 Ko). 4) compact : Signifie que DS va utiliser plusieurs segments alors que CS ne va en utiliser qu’un seul (i.e. l’inverse du modèle medium). Architecture des Ordinateurs 10 STRUCTURE D’UN PROGRAMME EN TASM
  • 11. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR .model 5) large : l’utilisation de ce modèle implique que CS et DS vont pouvoir utiliser chacun plusieurs segments de mémoire. 6) huge : Ce modèle est utilisé lorsque le programme a recours à des structures de données qui dépassent la taille d’un segment de mémoire (i.e. 64 Ko).  Exemple d’utilisation: Architecture des Ordinateurs 11 STRUCTURE D’UN PROGRAMME EN TASM
  • 12. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR .stack  Cette directive permet de spécifier la taille de la pile qui sera utilisée avec le programme.  Exemple d’utilisation : Architecture des Ordinateurs 12 STRUCTURE D’UN PROGRAMME EN TASM
  • 13. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR .data  Lorsqu’il faut déclarer des variables ou des constantes utilisées dans le programme, il faut les déclarer au niveau de cette section. Cette section doit ensuite être connectée au segment de données (DS).  Un programme peut tourner sans la présence de cette section (au cas où il n’y a pas de données à déclarer).  Pour voir des exemples d’utilisation de cette section, se référer à la partie « Section de données ». Architecture des Ordinateurs 13 STRUCTURE D’UN PROGRAMME EN TASM
  • 14. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR .code  Cette section joue un rôle central, car elle contient la suite des instructions qui constituent le cœur du programme.  Pour voir des exemples de l’utilisation de cette section, se référer à la partie « section de code ». Architecture des Ordinateurs 14 STRUCTURE D’UN PROGRAMME EN TASM
  • 15. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Le code du programme doit se terminer avec la directive « end ». Toute instruction se trouvant après cette directive sera ignoré lors de la phase d’assemblage.  Après avoir écrit un programme en Turbo Assembleur, ce dernier est enregistré dans un fichier portant l’extension « .ASM ».  Parfois, vous pouvez rencontrer des fichiers portant l’extension « .S » (Convention d’usage dans les environnements Linux en utilisant NASM ou GAS). Architecture des Ordinateurs 15 STRUCTURE D’UN PROGRAMME EN TASM
  • 16. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 16 SECTION DE DONNÉES 1 Octet 8 bits 1 Mot 16 bits 1 Double Mot 32 bits  Comme nous l’avons précisé auparavant, la déclaration des variables doit se faire au niveau de la section de données (.data).  Contrairement aux langages de haut niveau où les variables peuvent avoir un type, la déclaration des variables en Assembleur se limite à spécifier la taille qui sera occupée par ces dernières. Les tailles possibles sont : Octet, Mot, et Double Mot.
  • 17. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  La syntaxe utilisée pour déclarer une variable est la suivante : <étiquette> <type de donnée> <initialisation> <;commentaire>  L'étiquette joue le rôle d'identificateur. Elle porte le nom de la variable.  Le type de donnée peut être égal à l’un des mots-clés suivants :  db pour une donnée codée sur un Octet.  dw pour une donnée codée sur un Mot (2 octets).  dd pour une donnée qui codée sur un Double Mot (4 octets). Architecture des Ordinateurs 17 SECTION DE DONNÉES
  • 18. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  L'initialisation reflète :  Soit un contenu concret initialisant la donnée déclarée. Dans le cas des valeurs numériques (les nombres), ils doivent être repérés par rapport à leurs bases. Par défaut, les valeurs numériques sont considérées comme des décimaux.  Soit un point d'interrogation ( ? ) indiquant que la donnée n'a pas été initialisée.  Un commentaire commence par un point virgule ( ; ) et doit figurer sur une seule ligne. Architecture des Ordinateurs 18 SECTION DE DONNÉES
  • 19. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Exemples: Architecture des Ordinateurs 19 SECTION DE DONNÉES
  • 20. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Les constantes:  En Assembleur, les constantes sont déclarées via le mot-clé « equ ».  En réalité, le mot-clé equ va uniquement permettre de substituer une valeur ou un traitement par une étiquette au moment de l’assemblage du code. Du coup, il ne serait pas faux de trouver ce mot-clé même au niveau de la section de code.  Mais généralement, nous l’utilisons pour fixer des valeurs constantes. Architecture des Ordinateurs 20 SECTION DE DONNÉES
  • 21. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Les constantes:  Exemple : Architecture des Ordinateurs 21 SECTION DE DONNÉES
  • 22. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Syntaxe d’une ligne d’instruction: <étiquette:> <opération> <opérandes> <;commentaire>  L'étiquette permet de localiser un emplacement au niveau du code. Il s'agit d'un identificateur suivi de 2 points ( : ) qui est utile pour effectuer des sauts.  La partie <opération> représente l'une des opérations décrites dans le Jeu d’instruction du Microprocesseur cible. Architecture des Ordinateurs 22 SECTION DE CODE
  • 23. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Les opérandes reflète les opérandes de l'instruction en question. Le nombre d’opérandes est soit 0, 1 ou 2. Si l’opération demande 2 opérandes, alors ces derniers sont séparés par une virgule ( , ). À noter aussi que dans le cas présent, le 1er opérande est un opérande de Destination et que le 2ème est un opérande Source, et que ces 2 opérandes doivent être compatibles, i.e. ils doivent être de la même taille mémoire.  Exemples : Architecture des Ordinateurs 23 SECTION DE CODE
  • 24. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Les types d’opérandes permis :  Registre : AX (AH, AL), BX (BH, BL), CX (CH, CL), DX (DH, DL), DI, SI, BP, SP.  Le registre IP ne peut pas être manipulé de manière explicite.  Registre de segment : DS, ES, SS, CS  Pour le registre CS, celui-ci ne peut être utilisé que comme register source.  Emplacement Mémoire : [BX], [SI], [DI], [BP], [BX+SI], variable, etc.  Valeur immédiate : par exemple 5, -24, 3Fh, 10001101b, etc. Architecture des Ordinateurs 24 SECTION DE CODE
  • 25. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Le contrôle du déroulement du programme est une chose très importante. En effet, il est parfois nécessaires de modifier le flux d’exécution du programme selon certaines conditions.  À cet effet, nous aurons besoin d’utiliser ce que l’on appelle « les sauts de contrôle ». Architecture des Ordinateurs 25 LES SAUTS DE CONTRÔLE
  • 26. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Un saut inconditionnel permet de sauter directement vers un emplacement du code sans condition préalable.  Un saut inconditionnel est effectué grâce à l’instruction « JMP ». Il s’agit de l’équivalent du mot-clé « GOTO » en langage C.  Exemple: où « _label » représente une étiquette qui marque un certain emplacement dans le code. Architecture des Ordinateurs 26 LES SAUTS DE CONTRÔLE LES SAUTS INCONDITIONNELS
  • 27. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 27 LES SAUTS DE CONTRÔLE LES SAUTS INCONDITIONNELS
  • 28. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Contrairement à l'instruction « JMP » qui effectue un saut inconditionnel, il existe des instructions qui effectuent des sauts uniquement lorsque certaines conditions sont remplies.  Les conditions qui vont orienter les sauts sont vérifiées sur la base des valeurs des drapeaux (flags) du registre d’états qui vont à leur tour dépendre du résultat de la dernière instruction exécutée. Mais généralement, nous faisons appel à l’instruction « CMP » pour effectuer une comparaison. Architecture des Ordinateurs 28 LES SAUTS DE CONTRÔLE LES SAUTS CONDITIONNELS
  • 29. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  En réalité, l’instruction CMP se comporte tout à fait comme SUB, sauf qu’elle ne retourne pas de résultat dans l’opérande de destination.  Exemple : Architecture des Ordinateurs 29 LES SAUTS DE CONTRÔLE LES SAUTS CONDITIONNELS
  • 30. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 30 LES SAUTS DE CONTRÔLE LES SAUTS CONDITIONNELS
  • 31. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 31 LES SAUTS DE CONTRÔLE LES SAUTS CONDITIONNELS
  • 32. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 32 LES SAUTS DE CONTRÔLE LES SAUTS CONDITIONNELS
  • 33. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Le langage Assembleur offre également un moyen pour faciliter l’usage des boucles: l’instruction « loop » (et ses variantes).  À la base, les boucles sont les mêmes que les sauts, et il est tout à fait possible de coder des boucles en utilisant uniquement des sauts conditionnels et des comparaisons.  Les boucles utilisent le registre CX pour compter les itérations. Architecture des Ordinateurs 33 LES SAUTS DE CONTRÔLE LES BOUCLES
  • 34. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 34 LES SAUTS DE CONTRÔLE LES BOUCLES
  • 35. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 35 LES PILES  Une pile est un emplacement mémoire où sont stockées des données de manière à ce que l’accès à celle-ci s’effectue en mode LIFO (Last In First Out).  Ainsi, le pointeur de pile SP (en combinaison avec le segment de pile SS) pointe vers le dessus de la pile (Top of stack).  Les piles sont très utiles pour le traitement des interruptions, car elles permettent de mémoriser la valeur de CS:IP pour reprendre le déroulement du programme par la suite (ici, l’usage de la pile est implicite).
  • 36. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 36 LES PILES  En outre, elles peuvent également servir lors des appels de procédures et des sous routines (ici, l’usage de la pile est explicite).  Les opérations qui permettent de manipuler les données de la pile sont PUSH et POP. Ces opérations acceptent des opérandes de 2 octets:  PUSH permet d’empiler des données sur la pile.  POP permet de récupérer (dépiler) des données de la pile.  Exemple:
  • 37. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 37 LES MACROS  Parfois, il s’avère que nous employons une suite d’instructions récurrente tout au long de notre programme.  Afin de factoriser l’usage de cette suite récurrente d’instructions, l’Assembleur nous offre la possibilité de l’écrire sous forme de Macro.  Au moment de l’assemblage, la macro en question sera remplacée par son code correspondant à chaque fois qu’elle sera rencontrée.
  • 38. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR Architecture des Ordinateurs 38 LES MACROS  Exemple d’une macro appelée « traitement » avec 3 paramètres:
  • 39. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Une procédure représente une sous routine appelée à partir du programme pour effectuer un certain nombre de traitements.  Pour appeler une procédure, nous utilisons le mot-clé « call ».  Le passage de paramètres pour une procédure se fait de 2 manières principales:  Par registres  Par pile Architecture des Ordinateurs 39 LES PROCÉDURES
  • 40. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Le passage par registres est simple mais peu efficace car il participe à l’occupation des registres qui peuvent être utilisés dans d’autres traitements.  Le passage par pile est le plus préconisé, il est d’ailleurs le mécanisme employé par les langages de haut niveau. Architecture des Ordinateurs 40 LES PROCÉDURES
  • 41. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Exemple de l’utilisation d’une procédure avec passage d’arguments par pile : Architecture des Ordinateurs 41 LES PROCÉDURES
  • 42. Université Mohammed V de Rabat École Normale Supérieure de Rabat Département d’Informatique CLE Informatique L’ASSEMBLEUR  Exemple de l’appel de la procédure précédente avec passage par pile : Architecture des Ordinateurs 42 LES PROCÉDURES