2004-2007, Pierre Jourlin. (document sous contrat Creative Commons)
Introduction à la programmation en
assembleur
(processeurs 64 bits de la famille 80x86)
2004-2007, Pierre Jourlin
Institut Universitaire Professionnalisé de Génie Informatique et Mathématique
Université d'Avignon et des Pays de Vaucluse
page 1 sur 43
2004-2007, Pierre Jourlin. (document sous contrat Creative Commons)
Paternité - Partage des Conditions Initiales à l'Identique 2.0 France
Vous êtes libres :
de reproduire, distribuer et communiquer cette création au public
de modifier cette création
d'utiliser cette création à des fins commerciales
Selon les conditions suivantes :
Paternité. Vous devez citer le nom de l'auteur original.
Partage des Conditions Initiales à l'Identique. Si vous
modifiez, transformez ou adaptez cette création, vous n'avez le
droit de distribuer la création qui en résulte que sous un contrat
identique à celui-ci.
A chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les
conditions contractuelles de mise à disposition de cette création.
Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des
droits.
Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur
: copies réservées à l'usage privé du copiste, courtes citations, parodie...)
Ceci est la Résumé Explicatif du Code Juridique (la version intégrale du contrat, voir chapitre 14)
NOTE IMPORTANTE : Ce document est loin d'être parfait... Si vous
constatez des erreurs ou si vous avez des suggestions pour l'améliorer,
n'hésitez pas à contacter l'auteur par email :
Pierre.Jourlin@univ-avignon.fr
page 2 sur 43
2004-2007, Pierre Jourlin. (document sous contrat Creative Commons)
Table des matières
Avant-Propos........................................................................................................................................6
1. Introduction.......................................................................................................................................6
1.1. Petits rappels sur la structure des ordinateurs............................................................................7
1.2. Qu'est-ce qu'un programme en langage machine ?...................................................................9
1.3. Qu'est-ce qu'un programme en assembleur ?..........................................................................10
2. Arithmétique Entière......................................................................................................................13
2.1. Un mot sur les registres généraux et leur capacité..................................................................13
2.2. Entiers signés et non-signés....................................................................................................14
2.3. Débordements.........................................................................................................................15
3. Instructions de branchement ..........................................................................................................17
3.1. Le registre RIP (Re-Extended Instruction Pointer).................................................................17
3.2. Branchement inconditionnel : instruction jmp (de « jump » : sauter).....................................17
3.3. Branchements conditionnels ..................................................................................................18
4. Structure des données : pointeurs, tableaux, matrices, etc. ...........................................................19
4.1. Registres « pointeurs »............................................................................................................19
4.2. Mode d'adressage « indirect ».................................................................................................19
4.3 Mode d'adressage « indirect indexé »......................................................................................20
4.4. Indexations complexes............................................................................................................21
5. Comparaisons et autres branchements conditionnels.....................................................................21
6. Équivalents des structures algorithmiques avancées......................................................................24
7. Utilisation de la pile........................................................................................................................25
8. Procédures......................................................................................................................................26
8.1 Les instructions call et ret........................................................................................................26
8.2 Les interruptions et les exceptions ..........................................................................................29
9. Autres instructions d'arithmétique entière......................................................................................30
9.1 Multiplication et division sur des entiers.................................................................................30
9.1.1. Multiplication non signée............................................................................................30
9.1.2. Division non signée ....................................................................................................31
9.2 Multiplication et division sur des entiers signés......................................................................31
9.2.1 Multiplication signée...................................................................................................31
9.2.2 Division signée............................................................................................................32
10. Opérateurs logiques......................................................................................................................32
11. Calculs en virgule flottante...........................................................................................................32
11.1 Introduction............................................................................................................................32
11.2. La norme IEEE 754...............................................................................................................33
11.3 Les registres du processeur à virgule flottante (x87).............................................................34
11.4 Principales instructions de calcul...........................................................................................34
11.5 Comparaisons et branchements conditionnels.......................................................................35
12. Parallélisme (MMX, SSE, 3DNow!)............................................................................................36
12.1 Registres MMX......................................................................................................................36
12.2 Instructions MMX..................................................................................................................36
13. Bibliographie................................................................................................................................37
15. Travaux Pratiques : Programmer en Assembleur sous GNU/Linux.............................................39
page 3 sur 43
2004-2007, Pierre Jourlin. (document sous contrat Creative Commons)
15.1 Premiers pas................................................................................................................................39
14. Contrat Creative Commons...........................................................................................................40
page 4 sur 43
2004-2007, Pierre Jourlin. (document sous contrat Creative Commons)
page 5 sur 43
1 / 43 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !