Le logiciel ou Software
Pascal FOUGERAY
Toutes les données, images, valeurs, phrases de ce document ne sont pas ma propriété dite “intellec-
tuelle”. Si vous voulez récupérer ce document et le façonner à votre goût, cela ne me dérange nullement. Je
n’ai presque rien inventé hormis certains exemples de travaux pratiques, j’ai beaucoup “pioché” et “trié”
dans différentes littératures les informations s’y trouvant.
Bonne lecture...
1
Table des matières
I Le Logiciel ou Software 8
1 Introduction 9
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Définition d’un langage machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 L’interpréteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Le compilateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Le langage d’assemblage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.1 Pour l’architecture de type x86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.2 Pour l’architecture de type alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.3 Pour l’architecture de type sparc . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Architecture d’un ordinateur de type PC 13
2.1 Schéma général des fonctions de traitement . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Organisation logique d’un ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 La mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 L’organe d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Le bloc de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.4 L’organe de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.5 L’organe de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Organisation d’un PC 16
3.1 Le Microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 La Mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.1 Registres de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.2 Registres de segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.3 Améliorations des registres du 80286 . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.4 Améliorations des registres du 80386 et 486 . . . . . . . . . . . . . . . . . . . . . 18
3.3.5 Améliorations des registres depuis le P2 . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Les registres généraux des microprocesseurs x386 et plus . . . . . . . . . . . . . . . . . . 19
3.5 Segmentation mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4 Structure d’un programme en langage d’assemblage x386. 21
4.1 Exemple de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Composition d’une ligne de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3 Les directives d’assemblage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3.1 Les directives de segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3.2 Les directives de constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4 Les labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.5 Les instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.6 Les opérandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.7 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2
5 La pile 27
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Les instructions pushl et popl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3 Le principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4 L’appel d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.5 La pile lors de la transmission de paramètres . . . . . . . . . . . . . . . . . . . . . . . . . 28
6 Modes d’adressage mémoire 30
6.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.2 Adressage immédiat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.3 Adressage indirect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.4 Adressage basé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.5 Adressage indexé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.6 Les combinaisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.6.1 Adressage indexé et basé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.6.2 Adressage basé et déplacement direct ou immédiat . . . . . . . . . . . . . . . . . 33
6.6.3 Adressage indexé et déplacement direct ou immédiat . . . . . . . . . . . . . . . . 33
6.6.4 Adressage basé, indexé et déplacement direct ou immédiat. . . . . . . . . . . . . . 33
6.6.5 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.6.6 Remarque 2, mode protégé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7 Données en mémoire 35
7.1 Base de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2 Données initialisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2.1 Pour les nombres entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2.2 Pour les nombres flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.2.3 Initialisation de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.2.3.1 Initialisation d’un tableau avec plusieurs valeurs . . . . . . . . . . . . . 36
7.2.3.2 Initialisation d’un tableau avec une seule valeur . . . . . . . . . . . . . 37
7.2.4 Initialisation de chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . 37
7.3 Déplacement de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.4 Manipulation de données de la pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.5 MOV en détail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
8 Les opérations sur les données 39
8.1 Additions et Soustractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.2 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8.3 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.4 Incrémentation et décrémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.5 Changement de signe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.6 Les opérations logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.7 Décalages et rotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.7.1 Décalage logique à gauche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.7.2 Décalage logique à droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.7.3 Décalage arithmétique à droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.7.4 Rotation à droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.7.5 Rotation à gauche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.7.6 Rotation à droite à travers la retenue . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.7.7 Rotation à gauche à travers la retenue . . . . . . . . . . . . . . . . . . . . . . . . 46
3
9 Les chaînes de caractères 47
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
9.2 Transfert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.3 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.4 Répéter les instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10 Boucles et sauts 50
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.2 Les sauts inconditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.3 Les sauts conditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10.4 Tableau des instructions de sauts conditionnels . . . . . . . . . . . . . . . . . . . . . . . 51
10.5 Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10.5.1 Exemple de programme utilisant une instruction de saut . . . . . . . . . . . . . . 52
10.5.2 Définition de ces instructions destinées aux boucles. . . . . . . . . . . . . . . . . 53
11 Blocs de répétitions et les Macros 54
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.2 Blocs de répétition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.2.1 Combinaison de REPT et du signe = . . . . . . . . . . . . . . . . . . . . . . . . 54
11.3 Les Blocs de répétition et les paramètres variables . . . . . . . . . . . . . . . . . . . . . . 55
11.4 Les Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11.4.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
11.4.3 Définition des labels dans les macros . . . . . . . . . . . . . . . . . . . . . . . . 56
11.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12 L’unité de virgule flottante : FPU 57
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
12.2 L’unité de virgule flottante : FPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
12.3 Les registres de la FPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
12.4 Définition de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
12.5 Les instructions FPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.5.1 Le transfert de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.5.2 Les instructions arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.5.3 Les instructions spécialisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.5.4 Les instructions trigonométriques . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.5.5 Les instructions de constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.6 Exemple de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
13 SIMD_MMX_SSE 63
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
13.2 MMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
13.3 Les registres MMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
13.4 Les instructions MMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
13.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
13.6 Le SSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
13.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
14 Les Interruptions 66
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
14.2 Les interruptions matérielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
14.2.1 Le PIC 8259 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
14.2.2 Les 2 PIC 8259 en cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4
1 / 95 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 !