Plan :
1. Introduction ...................................................................................................................1 2. Architecture du Pentium 4 ...............................................................................................3 2.1 Historique.................................................................................................................3 2.2 Registres d’entiers....................................................................................................5 2.3 Registres de virgule flottante ...................................................................................8 2.4 Registres MMX........................................................................................................9 2.5 Registres SIMD........................................................................................................9 2.6 Le registre EFLAGS ................................................................................................9 2.7 Autres registres ......................................................................................................10 3. Outils de programmation ...............................................................................................12 3.1 Masm32..................................................................................................................12 3.2 Déboguage .............................................................................................................13 4. Types de données...........................................................................................................19 4.1 Entiers ....................................................................................................................19 4.2 Virgule flottante .....................................................................................................20 4.3 MMX......................................................................................................................20 4.4 SIMD......................................................................................................................21 4.5 Rangement des données en mémoire.....................................................................21 4.6 Temps d’exécution des instructions.......................................................................22 5. Structures de contrôle ....................................................................................................24 5.1 Principales structures de contrôle ..........................................................................24 5.2 Branchements.........................................................................................................26 6. Modes d’adressage.........................................................................................................31 7. Instructions de base........................................................................................................34 7.1 Directives de base....................................................................................................35 7.2 Un premier exemple : addition de deux nombres....................................................37 7.3 Un deuxième exemple : conversion majuscules-minuscules ..................................38 7.4 Un troisième exemple : recherche du maximum.....................................................39 7.5 Entrées-sorties en mode console .............................................................................40 7.6 Chaînes de caractères ..............................................................................................42 7.7 Comparaison de chaînes..........................................................................................46 7.8 Recherche d’une chaîne dans une autre...................................................................47 7.9 Transposée d’une matrice........................................................................................48 8. Instructions arithmétiques 8.1 Addition...................................................................................................................48 8.2 Soustraction .............................................................................................................52 8.3 Multiplication ..........................................................................................................52 8.4 Division ...................................................................................................................55 8.5 Décalages et rotations..............................................................................................56 8.6 Racine carrée par la méthode de Newton................................................................60 9. Conversions....................................................................................................................62 9.1 Conversion décimal à binaire ..................................................................................62 9.2 Conversion binaire à décimal ..................................................................................63 9.3 Conversion binaire à chaîne hexadécimale .............................................................66 10. La pile ..........................................................................................................................69 101 Empilement et dépilement......................................................................................69 10.2 Sous-programmes..................................................................................................71 10.3 Blocs de pile ..........................................................................................................73 10.4 Récursivité.............................................................................................................76 10.5 Tables de sauts.......................................................................................................77 11. Interruptions.................................................................................................................79 11.1 Interruptions logicielles .........................................................................................79 11.2 Interruptions matérielles........................................................................................82 12. Directives d’assemblage et macros..............................................................................89 12.1 Directives d’assemblage........................................................................................89 12.2 Directives d’assemblage conditionnel...................................................................92 12.3 Macros ...................................................................................................................94 12.4 Directives pour structures de contrôle et programmation structurée.....................95 La librairie MASM32 ........................................................................................................97 Corrigé des exercices .........................................................................................................99