Table des mati`eres
1 Introduction 3
2 M´ethodologie 4
2.1 M´ethodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Aper¸cu du langage d’assemblage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Exemple 6
3.1 Programme `a ´ecrire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Analyse et algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 La r´ealisation du programme assembleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.1 Structure du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.2 D´efinition du corps des sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.3 Traduction des expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.4 Allocation des pseudo-variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.5 Derniers ajustements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.6 Programme termin´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Guide pour la traduction de structures de haut niveau en assembleur 19
4.1 Expression arithm´etique et logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.2 L’affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 S´equence d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 Les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3.2 Conditions simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.3 La condition est une expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3.4 Conditions compos´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4.1 Boucle tant-que ....................................... 23
4.4.2 Boucle r´ep´eter ........................................ 24
4.4.3 Boucle pour .......................................... 24
4.5 Proc´edures et fonctions : principe des sous-programmes . . . . . . . . . . . . . . . . . . . . . . 25
4.5.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5.2 Appel d’un sous-programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.6 Sous-programmes avec param`etres et variables locales . . . . . . . . . . . . . . . . . . . . . . 26
4.6.1 Passage de param`etre en entr´ee du sous-programme . . . . . . . . . . . . . . . . . . . 26
4.6.2 R´eception des param`etres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.6.3 Variables locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.6.4 Valeur de retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.7 Traduction des pseudo-variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.7.1 Les variables globales du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.7.2 Les variables temporaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1