SlideShare a Scribd company logo
1 of 43
Download to read offline
Architecture des systèmes à
microprocesseur
Bases de l’informatique
IUT de l’Indre
Eric PERONNIN
www.geii.eu 2
Le microprocesseur
Unité de traitements (Central Processing Unit) capable d’exécuter
du code reposant sur un jeu d’instructions spécifique
 Réduit dans le cas des processeurs RISC
 Cas de la plupart des microcontrôleurs
– 35 instructions pour les PIC16 de Microchip
– 75 instructions pour les PIC18
– 133 pour l’Atmega128A d’Atmel
 Complexe : microprocesseurs CISC
 Plusieurs centaines d’instructions
– Tous les descendants de la famille x86 d’Intel dont ceux des architectures IA32
et IA64 actuelles
– AMD compatible x86, IA32 et IA64
Architecture sans périphérique interne
www.geii.eu 3
Le microcontrôleur
Système complet sur une seule puce résultant de l’association
 D’un cœur de microprocesseur
 D’une mémoire de programme (souvent)
 D’une mémoire de données (souvent)
 De périphériques
 mémoire EEPROM (informations de configuration)
 timers
 DAC et ADC
 bus 2, 3 et 4 fils (I2C, SPI)
 USART …
Utilisation : divers systèmes embarqués ...
www.geii.eu 4
Introduction
Systèmes à processeur(s) : de la diversité
 Electronique embarquée
 Microcontrôleur 1 cœur : quelques centaines de MIPS
– Gestion d’évènements et commande matériel simple
» Divers fonctions en automobile
» Petits automates
– Interface utilisateur simple et configuration des circuits intégrés d’une carte
électronique
» Produits grand public audio/vidéo
» Electroménager
 Informatique nomade
 Processeur multi-cœurs : quelques milliers de MIPS
– Tablettes
– Téléphones portables
www.geii.eu 5
Introduction
Systèmes à processeur(s) : de la diversité
 Ordinateur personnels portables ou de bureau
 Processeur multi-cœurs (2 à 12) : plusieurs centaines de milliers de MIPS
 Supercalculateurs vectoriels
 Le plus puissant du monde est chinois « Tianhe-2 »
– 3 120 000 cœurs ou 260 000 Pentium XEON (12 cœurs)
– 33 862 TFlops de puissance de calcul
– 17,8 MW de puissance consommée
– 1024 To de RAM
– Système Kylin Linux
www.geii.eu 6
Introduction
Système à microprocesseur : 2 architectures mémoires de base
possibles
 Eléments communs
 1 unité d’exécution d’instructions micro-programmées (le
processeur, désigné par CPU)
 1 circuit d’horloge assurant le cadencement synchrone du
fonctionnement du système
 1 décodeur d’adresse gérant la cartographie de l’espace mémoire
 divers périphériques permettant de communiquer avec l’extérieur,
de stocker des données en grande quantité
 Architecture de Harvard
 1 mémoire permettant le stockage du programme
 1 mémoire assurant le stockage des données
 Architecture de Von Neumann
 1 mémoire permettant le stockage du programme et des données
www.geii.eu 7
Introduction
Système minimum de Von Neumann
Microprocesseur
Mémoire RAM
Périphérique 1
Périphérique 2
Périphérique :
mémoire de
stockage
Horloge
Superviseur
d’alimentation
D
E
C
O
D
E
U
R
D
’
A
D
R
E
S
S
E
S
Bus de données
Bus d’adresse
Signaux de contrôle
Mémoire RAM
www.geii.eu 8
Bus système
Bus d’adresse
 Spécifie l’emplacement mémoire auquel le CPU accède
 Possède M fils de signaux binaires notés AM-1 à A0 permettant de cibler 2M
emplacements
 Bus 16 bits : 65536 = 64K emplacements
 Bus 20 bits : 1 048 576 = 1M emplacements
 Bus 32 bits : 4G emplacements
 Bus 64 bits : 1T emplacements
Bus de donnée
 Contient la donnée échangée entre le CPU et la mémoire ou un
périphérique du système
 Possède N fils de signaux binaires notés DN-1 à D0 où N est un multiple de
8
 N = 8 : la donnée est un Octet
 N = 16 : la donnée est un Mot (Word)
 N = 32 : on parle de Double Mot (DWord)
www.geii.eu 9
Eric PERONNIN
Bus système–Décodeur d’adresses
Bus de contrôle
 Véhicule tous les autres signaux du CPU
 CLK : l’horloge système
 RW : informe si le CPU effectue une opération de lecture (RW = 1)
ou d’écriture (RW = 0)
 INT : informe le CPU d’une demande de traitement d’interruption
 etc …
 et les signaux du décodeur d’adresse
Décodeur d’adresse
 Assure le décodage de l’adresse pour respecter une cartographie
mémoire donnée
 Pour une adresse @ donnée, il assure la sélection du composant
placé à cette adresse en générant un signal Chip Select (noté CS_)
destiné à ce composant
www.geii.eu 10
Cartographie mémoire
Figure ou tableau spécifiant l’espace mémoire adressable réservé
à chaque élément connecté sur le bus d’@
 Exemple avec un bus mémoire sur 16 bits
Mémoire RAM
@
0000h
7FFFh
Périphérique 1
8000h
8FFFh
Inutilisé
Périphérique 2
A000h
FFFFh
Lorsque @ est comprise entre
0000h et 7FFFh, le décodeur
d’adresse envoie un signal
CS_RAM = 0 pour sélectionner la
RAM.
Si @ est comprise entre 8000h et
8FFFh, le décodeur d’@ envoie
CS_PER1 = 0 pour sélectionner
le Périphérique 1.
Si @ est comprise entre A000h et
FFFFh, le décodeur d’@ envoie
CS_PER2 = 0 pour sélectionner le
Périphérique 2.
www.geii.eu 11
Structure interne d’un CPU
Décodeur d’instructions / Unité d’exécution
Queue
d’instruction
s
Registres
UAL
Chargement
d’instruction
Mémoire de programme et de données
Gestionnaire d’@
UAL = Unité
Arithmétique et
Logique
www.geii.eu 12
Structure interne d’un CPU
Eléments additionnels présents dans les processeurs
d’aujourd’hui
 Décodage/Exécution des instructions en parallèle (1 complexe
et plusieurs simples)
 Architectures multi-cœurs
 Cache mémoire de différents niveaux avec contrôleurs associés
pour palier à la lenteur de la mémoire centrale
 L1 : mémoire en liaison directe avec le processeur
– fonctionne à la fréquence du processeur
– petite capacité (qques Ko)
 L2 : en liaison avec le cache de niveau L1 et L3
– fonctionne à une fréquence moindre
– capacité moyenne (qques centaines de Ko)
 L3 : interface entre le cache L2 et la mémoire centrale
– Fréquence plus faible que le processeur
– capacité de qques Mo
– partager entre les différents cœurs du processeur
www.geii.eu 13
Structure interne d’un CPU
Eléments additionnels présents dans les processeurs
d’aujourd’hui
 Unité multiple de calcul en virgule flottante double précision (80
bits)
 Unité de calcul vectoriel
 plusieurs calculs simultanés sur des entiers
– 8 par cycles en 8 bits (pour la vidéo)
 calculs vectoriels sur des flottants
– 4 par cycles en simple précision
 Contrôleur de mémoire intégré au CPU
 Plus d’utilisation du chipset pour les traitements rapides
 Processeur graphique intégré au CPU
www.geii.eu 14
Cas concret : les processeurs Intel
Année Modèle
Fréquence
CPU
MIPS Architecture
Bus
interne
Cache L1
Cache
L2
Fréq. Bus Bus Externe Transistors Gravure Boitier
Tension
CPU
TDP Remarque
1979 8086 10 MHz 0,75 16 bits 16 bits 10 MHz 20 bits (1 Mo) 29 000 3 µm 40 DIP 5 v
Bus d'adresse
sur 20 bits
1989 80386DX 33 MHz 11,4 32 bits 32 bits 33 MHz 32 bits (4 Go) 275 000 1 µm 5 v
1994 80486DX4 100 MHz 54 32 bits 64 bits 16 Ko 100 MHz 32 bits (4 Go) 1 600 000 0,6 µm 5 v
1998 Pentium MMX 233 MHz 300 32 bits 64 bits
16 Ko Inst. + 16
Ko Data
66 MHz 32 bits (4 Go) 3 100 000 250 nm 296 PGA 1,8 v
Instructions
MMX
2001 Pentium III 1 GHz 3438 32 bits 64 bits
16 Ko Inst. + 16
Ko Data
256 Ko 133 MHz 32 bits (4 Go) 28 000 000 180 nm 370 FC PGA 1,7 v 33 W
Instructions
SSE
2007 Core 2 Duo E4300 1800 MHz 19600
64 bits (2
cœurs)
Multiples
2 x 32 Ko Inst. +
2 x 32 Ko Data
2 Mo
800 MHz
(200 x 4)
64 bits (1 To) 167 000 000 65 nm 775 FC LGA6 0,85 v 65 W
SSE, SSE2,
SSE3, SSE4
2013 Core i7 4770K 3500 MHz 127000
64 bits (4
cœurs)
Multiples
4 x 32 Ko Inst. +
4 x 32 Ko Data
4 x 256
Ko
1666 MHz 64 bits (1 To) 1 400 000 000 22 nm 1150 LGA
0,685 à
1,11 v
84 W
Cache L3 de 8
Mo
Du 8086 au i7
 Le i7 d’aujourd’hui, toujours capable d’exécuter les instructions du premier
processeur de PC, le 8086 de 1977
Historique
 Au rythme d’innovations diverses, la nombre de transistors dans un processeur
double environ tous les 2 ans suivant la loi de Moore
Gordon Moore : cofondateur d’Intel avec Robert Noyce édicte sa loi dite de Moore en 1971 et
toujours vérifiée à ce jour.
www.geii.eu 15
Puce gravée d’un processeur Intel série Haswell
www.geii.eu 16
Microarchitecture d’un coeur
www.geii.eu 17
Architecture de la carte mère
www.geii.eu 18
Programmation des processeurs
Intel d’architecture IA32
Repose sur
 un jeu d’instructions 32 bits directement exécutable par le
processeur
 un ensemble de registres, mémoires internes de travail du
processeur
 registres généraux 32 bits
– eax, ebx, ecx, edx qui permettent de réaliser différents types de calcul
– chacun de ces registres peut être décomposé en sous registre de 16 et 8 bits.
Exemple pour eax
ah al
ax
eax
Bits 31 16 15 8 7
0
www.geii.eu 19
Programmation des processeurs
Intel d’architecture IA32
 des registres de déplacement sur 32 bits (index)
– edi, esi, ebp, esp
– dont les poids faibles sont accessibles par respectivement di, si, bp, sp
 1 registre pointeur d’instruction sur 32 bits précisant l’adresse
de la prochaine instruction à exécuter par le processeur
– eip (poids faible accessible par le registre 16 bits ip)
 des registres de segment 16 bits intéressants pour séparer
les zones mémoires en fonction de leur rôle
– cs pour le segment de code
– ds, es, fs, gs pour les segments de données
– ss pour le segment de pile
 des registres spécifiques à certaines instructions pour le
traitement parallèle ou les traitements en virgule flottante
– 8 registres 128 bits (SSE, SSE2)
– 8 registres 80 bits (ST0 à ST7 pour les calculs en flottant)
www.geii.eu 20
Programmation des processeurs d’architecture IA32
1 registre d’état EFLAG renseignant sur l’état du système
et la nature du résultat du dernier calcul effectué
www.geii.eu 21
Eric PERONNIN
Initiation à l’assembleur IA32
Objectifs purement pédagogiques
 Connaître succinctement le fonctionnement d’un processeur de PC par
la connaissance de ses instructions
 Comprendre le travail réalisé par un compilateur C
Outils employés : tous gratuits
 Assembleur MASM32
 Environnement de développement RadASM
 Debugger OLLYDBG
Remarque sur l’intérêt réel de programmer en assembleur
 Sur PC
 Aucun car les compilateurs produisent un code optimisé tenant
compte des spécificités des processeurs
 Exception faite, parfois, de la programmation de pilotes
 Sur microcontrôleur
 Parfois utile pour des besoins très spécifiques et ponctuels
www.geii.eu 22
Un premier programme
www.geii.eu 23
Eric PERONNIN
Un premier programme (suite)
www.geii.eu 24
Un premier programme (suite)
www.geii.eu 25
Règles d’écriture d’un programme
L’écriture d’un programme assembleur obéit à des règles :
 La première colonne contient des labels ou étiquettes, des
directives d’assembleur,
 la seconde colonne contient des directives ou des instructions
(mnémoniques),
 la troisième colonne contient des opérandes et paramètres
divers.
 Enfin, tout ce qui se trouve après un point-virgule est considéré
comme un commentaire.
Note : on peut utiliser la 4ième colonne à cette fin.
www.geii.eu 26
Document de référence - Notations
Un document de référence
 la datasheet INTEL Pentium IA32 Reference Instruction Set (2 tomes
de 750 pages)
Notations utilisées pour qualifier les opérandes d’une instruction
 Opérandes de type registre :
 reg8 représente un registre 8 bits (ah, al, bh, bl, ch, cl, dh, dl)
 reg16 pour un registre général sur 16 bits (ax, bx, cx, dx, sp, bp, si,
di)
 reg32 pour les registres généraux sur 32 bits (eax, ebx, ecx, edx,
esp, ebp, esi, edi)
 segreg pour un registre de segment (cs, ds, ss, es)
 Opérandes en valeurs immédiates :
 imm8 pour une valeur sur 8 bits
 imm16 pour une valeur sur 16 bits
 imm32 pour une valeur sur 32 bits
www.geii.eu 27
Notations
Notations (suite)
 Opérandes de type emplacement mémoire :
 mem8 désigne un emplacement mémoire sur 8 bits
 mem16 désigne un emplacement mémoire sur 16 bits
 mem32 désigne un emplacement mémoire sur 32 bits
 En cas d’ambiguïté sur le format d’un opérande mémoire, on précisera
le type par un suffixe
 BYTE PTR (si la cible doit être considérée comme un mem8),
 WORD PTR (pour une cible de type mem16)
 DWORD PTR pour préciser l’accès à une donnée sur mem32
 Opérandes registres ou mémoires (instructions acceptant les deux
types d’opérandes) :
 r/m8 est la contraction de reg8 ou mem8
 r/m16 est la contraction de reg16 ou mem16
 r/m32 est la contraction de reg32 ou mem32
www.geii.eu 28
Jeu d’Instructions - Affectation
Instruction MOV
 Syntaxe : mov destination,source
 Destination : r/m8, r/m16, r/m32, segreg
 Source : r/m8, r/m16, r/m32, imm8, imm16, imm32
 Equivalent algorithmique : destination  source
Différents modes d’adressage en fonction de l’origine des données
 Adressage immédiat : spécification explicite de la valeur
Exemple : eax 12
 mov eax, 12
 mov eax, 0Ch ; h pour hexa
 mov eax, 1100b ; b pour binaire
 Adressage par registre : valeur placée dans un registre
Exemple : eax  ebx
 mov eax, ebx
www.geii.eu 29
Modes d’adressage
Différents modes d’adressage (suite)
 Adressage mémoire direct : donnée située à un emplacement
mémoire indiqué explicitement
Exemple : eax  (0ACA9910h)
 mov eax, [0ACA9910h]
Note : on dit que eax reçoit le contenu de l’emplacement
mémoire 0ACA9910h
 Adressage mémoire indirect : donnée située à un emplacement
mémoire indiqué par un registre
Exemple : eax  (ebp)
 mov eax, [ebp]
Note : on dit que eax reçoit le contenu de l’emplacement
mémoire pointé par ebp
www.geii.eu 30
Modes d’adressage
Différents modes d’adressage (suite)
 Adressage mémoire indexé : donnée située à un emplacement
mémoire indiqué par calcul Base+Décalage
Exemple : eax  (ebp+10)
 mov eax, [ebp + 10]
Note : ebp est le registre de Base ; 10 est le décalage
Exemple : ebx  (ebp + esi + 10)
 mov ebx, [ebp+esi+10]
Note : esi + 10 constitue le décalage (esi seul est l’index)
 Mixage des modes d’adressage
Exemple : (ebp)  12
 mov word ptr [ebp], 12
Note : word ptr précise que la valeur 12 est une donnée sur 16 bits
(donc les adresses ebp et ebp+1 seront modifiées)
 mov byte ptr [ebp], 12
Note : byte ptr précise que la valeur 12 est une donnée sur 8 bits
(donc seul l’octet pointé par ebp est modifié)
www.geii.eu 31
Unité arithmétique et logique - Registre d’état
Fonctionnement basé sur l’unité arithmétique et logique (UAL ou ALU)
 L’ALU nécessite 1 ou 2 opérandes.
 Elle renvoie un résultat et des indicateurs binaires dans le FLAGS
REGISTER (sur 32 bits en IA32)
Bits du FLAGS REGISTER
 CF = Carry Flag : indique un dépassement de capacité dans les
opérations non signées (unsigned overflow)
 PF = Parity Flag : drapeau de parité, mis à 1 si le résultat contient un
nombre pair de 1
 Z = Zero Flag : mis à 1 quand le résultat vaut 0
 SF = Sign Flag : indique si le résultat est négatif (SF prend en fait la
valeur du bit de poids fort du résultat)
 IF = Interrupt Enable Flag : autorise les interruptions externes si IF = 1.
www.geii.eu 32
Registre d’état (suite)
 DF = Direction Flag : drapeau utile pour les instructions sur
chaînes indiquant le sens de traitement (0 = en avant ; 1 = en
arrière).
 OF = Overflow Flag : OF = 1 si une opération signée aboutit à
un dépassement de capacité.
Remarque : ces drapeaux ne sont pas accessibles directement
mais utilisés par des instructions (opérations, branchements …)
www.geii.eu 33
Instructions arithmétiques
Additions
 adc op1,op2
 Équivalent algo : op1  op1 + op2 + CF où CF est le Carry Flag
 add op1,op2
 Équivalent algo : op1  op1 + op2
 inc op1
 Equivalent algo : op1  op1 + 1
 Utile pour le traitement des boucles
Soustractions
 sbb op1,op2
 Equivalent algo : op1  op1 – (op2+CF)
Rappel : CF est le Carry Flag
 sub op1,op2
 Equivalent algo : op1  op1 – op2
Note : op1 et op2 désignent des opérandes qui peuvent être de différents
types : r/m8 , r/m16, r/m32, imm8, imm16, imm32 …
www.geii.eu 34
Instructions arithmétiques
Multiplication non signée
 mul r/m8
 Equivalent : ax  ax * r/m8 (multiplication sur 8 bits)
 mul r/m16
 Equivalent : dx:ax  ax * r/m16 (multiplication sur 16 bits)
 Remarque : le résultat est donc sur 32 bits d’où l’association de dx:ax
pour composer un registre sur 32 bits
 mul r/m32
 Equivalent : edx:eax  eax * r/m32 (multiplication sur 32 bits)
 Même remarque que pour la multiplication sur 16 bits : ici edx:eax
compose un registre du 64 bits pour le résultat
Division
 Voir documentation IA32 lors des Travaux Pratiques
Opérations sur des flottants 32 bits
 Cf documentation.
www.geii.eu 35
Opérations logiques
Opérations logiques bit à bit
 and op1,op2 :
op1  op1 and op2 (c’est un ET bit à bit)
 or op1,op2 :
op1  op1 or op2 (OU bit à bit)
 not op
op  NON op (complément à 1 bit à bit)
 xor op1,op2
op1  op1 OU EXCLUSIF op2
 test op1,op2 :
 c’est un AND sans sauvegarde dans op1
www.geii.eu 36
Opérations « niveau bit »
Instructions de décalages de bits
 shl op,count et sal op,count (Shift Arithmetic Left et Shift Logical
Left)
 Effectue un décalage des bits de op vers la gauche de count bits.
 Les bits de poids faibles entrants sont fixés à 0.
 Le dernier bit sortant est conservé dans CF.
 sar op,count (Shift Arithmetic Right)
 Décale op de count bits vers la droite.
 CF contient le dernier bit sortant par la droite.
 Les bits entrants sont fixés à 0.
 Le bit de poids fort résultant est identique au bit de poids fort initial de
op.
 shr op,count (Shift Logical Right)
 Idem shl mais vers la droite.
www.geii.eu 37
Branchements conditionnés
Comparaison : CMP op1,op2
 Effectue la comparaison entre op1 et op2.
 op1 et op2 restent inchangés; ce sont les flags qui sont affectés.
Branchements conditionnés
 je addr : saut si égal
 jne addr : saut si non égal
 jo addr : saut si overflow
 jno addr : saut si non overflow
 jp addr : saut si parité paire
 jnp addr : saut si parité impaire
Cas d’un résultat non signé
 jbe addr : saut si inférieur ou égal
 jnbe addr : saut si supérieur
 jc addr : saut si inférieur (ou si CF = 1)
 jnc addr : saut si supérieur ou égal (ou si CF = 0)
www.geii.eu 38
Branchements conditionnés ou non
Cas d’un résultat signé
 jl addr : saut si inférieur
 jge addr : saut si supérieur ou égal
 jle addr : saut si inférieur ou égal
 jg addr : saut si supérieur
Branchements inconditionnels :
 jmp addr : Saute à l’adresse addr sans condition
Instructions de boucles
 Elles utilisent le registre de boucle cx
 jcxz addr : saut si cx = 0
 loop addr : cx  cx – 1 et saut si cx <> 0
 loope ader : cx  cx – 1 et saut si cx <> 0 ou si ZF = 1
 loopne addr : cx  cx – 1 et saut si cx <> 0 ou si ZF = 0
www.geii.eu 39
La pile
Qu’est-ce que la pile ? A quoi sert-elle ?
 C’est une zone mémoire utilisée pour la sauvegarde temporaire
de registres et d’adresses.
 Elle est de type LIFO (Last In, First Out) : la dernière donnée
entrée est la première récupérée (à comparer avec un
empilement de pièces).
 La dernière donnée écrite dans la pile est pointée par le pointeur
de pile : esp (Extended Stack Pointer).
www.geii.eu 40
Instructions de pile en IA32
Empilement de données
 push reg32 : permet d’empiler un registre 32 bits dans la pile.
 push imm32 : empile une valeur codée sur 32 bits.
 push (addr) : empile la valeur 32 bits mémorisée à l’adresse
addr. addr peut être spécifiée de façon directe, indirecte ou
indexée.
Dépilement de données
 L’instruction « pop » s’utilise comme l’instruction « push » et
réalise l’opération inverse (pop imm32 est bien sûr impossible).
www.geii.eu 41
Fonctionnement de la pile
Initialisation du pointeur de pile
mov esp, FFFFFFFEh ; avec un OS, c’est l’OS qui
; impose l’emplacement de la pile
Initialisation et stockage dans la pile d’un registre
mov eax, 1234h ; eax  1234h
push eax ; on sauve eax dans la pile
Récupération de la valeur stockée dans la pile dans un autre
registre
pop ebx ; on dépile la dernière donnée
; écrite dans la pile dans ebx
www.geii.eu 42
Ecriture de sous-programmes
Pourquoi écrire des sous-programmes ou fonctions
 Parce qu’ils peuvent être utilisés plusieurs fois.
 Pour une plus grande lisibilité du programme principal.
 Parce que le découpage en fonction implique des phases de
tests et de validation progressives : chaque fonction peut être
validée individuellement.
Comment en écrire en assembleur ?
 En exploitant la pile ou des registres pour le passage des
paramètres.
 En utilisant des instructions spécifiques :
calladdr ; pour appeler un sous-programme
ret ; pour effectuer un retour à la fin du
; sous-programme.
Base des systèmes à microprocesseur

More Related Content

What's hot

Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurSana Aroussi
 
Systeme embarque td1
Systeme embarque td1Systeme embarque td1
Systeme embarque td1SinGuy
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industrielsHafsaELMessaoudi
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresSana Aroussi
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de courssarah Benmerzouk
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursSana Aroussi
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018Hichem Hamdi
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresAbdoulaye Dieng
 
Presentation arduino
Presentation arduinoPresentation arduino
Presentation arduinoSinGuy
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busSana Aroussi
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Rapport de Projet de Fin d'étude .
Rapport de Projet de Fin d'étude .Rapport de Projet de Fin d'étude .
Rapport de Projet de Fin d'étude .Oussama Ben Sghaier
 

What's hot (20)

Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
 
Systeme embarque td1
Systeme embarque td1Systeme embarque td1
Systeme embarque td1
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industriels
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoires
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de cours
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoires
 
Langage vhdl
Langage vhdlLangage vhdl
Langage vhdl
 
Presentation arduino
Presentation arduinoPresentation arduino
Presentation arduino
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Rapport de Projet de Fin d'étude .
Rapport de Projet de Fin d'étude .Rapport de Projet de Fin d'étude .
Rapport de Projet de Fin d'étude .
 

Viewers also liked

Relais bluetooth - Balance connectée
Relais bluetooth - Balance connectéeRelais bluetooth - Balance connectée
Relais bluetooth - Balance connectéePeronnin Eric
 
Le Micro Processeur
Le Micro ProcesseurLe Micro Processeur
Le Micro Processeurrazman
 
Architecture du microprocesseur
Architecture du microprocesseurArchitecture du microprocesseur
Architecture du microprocesseurOndernemersschool
 
Conception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulteConception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adultePeronnin Eric
 
Réalisation d'un Thermomètre électronique - Présentation enfants
Réalisation d'un Thermomètre électronique -  Présentation enfantsRéalisation d'un Thermomètre électronique -  Présentation enfants
Réalisation d'un Thermomètre électronique - Présentation enfantsPeronnin Eric
 
Présentation microprocesseur finale
Présentation microprocesseur finalePrésentation microprocesseur finale
Présentation microprocesseur finaleMahmoud Masmoudi
 
An intel architecture, which is a cisc 2
An intel architecture, which is a cisc 2An intel architecture, which is a cisc 2
An intel architecture, which is a cisc 2Azhar Abbas
 
RISC - Reduced Instruction Set Computing
RISC - Reduced Instruction Set ComputingRISC - Reduced Instruction Set Computing
RISC - Reduced Instruction Set ComputingTushar Swami
 
Reduced instruction set computers
Reduced instruction set computersReduced instruction set computers
Reduced instruction set computersSanjivani Sontakke
 
Conception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCMConception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCMPeronnin Eric
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurablesPeronnin Eric
 
Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarquéHoussem Rouini
 
Transmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfertTransmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfertPeronnin Eric
 

Viewers also liked (20)

Relais bluetooth - Balance connectée
Relais bluetooth - Balance connectéeRelais bluetooth - Balance connectée
Relais bluetooth - Balance connectée
 
Le Micro Processeur
Le Micro ProcesseurLe Micro Processeur
Le Micro Processeur
 
Architecture du microprocesseur
Architecture du microprocesseurArchitecture du microprocesseur
Architecture du microprocesseur
 
Conception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulteConception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulte
 
Réalisation d'un Thermomètre électronique - Présentation enfants
Réalisation d'un Thermomètre électronique -  Présentation enfantsRéalisation d'un Thermomètre électronique -  Présentation enfants
Réalisation d'un Thermomètre électronique - Présentation enfants
 
Présentation microprocesseur finale
Présentation microprocesseur finalePrésentation microprocesseur finale
Présentation microprocesseur finale
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
 
Processeur
ProcesseurProcesseur
Processeur
 
An intel architecture, which is a cisc 2
An intel architecture, which is a cisc 2An intel architecture, which is a cisc 2
An intel architecture, which is a cisc 2
 
Risc and cisc
Risc and ciscRisc and cisc
Risc and cisc
 
Risc and cisc
Risc and ciscRisc and cisc
Risc and cisc
 
Nmas ass
Nmas assNmas ass
Nmas ass
 
ITFT_Risc
ITFT_RiscITFT_Risc
ITFT_Risc
 
RISC - Reduced Instruction Set Computing
RISC - Reduced Instruction Set ComputingRISC - Reduced Instruction Set Computing
RISC - Reduced Instruction Set Computing
 
Dipôles
DipôlesDipôles
Dipôles
 
Reduced instruction set computers
Reduced instruction set computersReduced instruction set computers
Reduced instruction set computers
 
Conception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCMConception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCM
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurables
 
Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarqué
 
Transmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfertTransmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfert
 

Similar to Base des systèmes à microprocesseur

Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdfAliRami3
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------NasriMohsen2
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDmohamedsaidi212001
 
Quelques concepts sur l
Quelques concepts sur lQuelques concepts sur l
Quelques concepts sur lTafriqt Ugafa
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptxSihemNasri3
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxFazaTabbana1
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
Initiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptxInitiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptxAbdo Brahmi
 
Le PC en détail
Le PC en détailLe PC en détail
Le PC en détailBruno Delb
 
Materiel informatique 2011
Materiel informatique 2011Materiel informatique 2011
Materiel informatique 2011Jouhadi mehdi
 
HELLO Wkkkkkkuuukuuioki’okokORLD (1).pptx
HELLO Wkkkkkkuuukuuioki’okokORLD (1).pptxHELLO Wkkkkkkuuukuuioki’okokORLD (1).pptx
HELLO Wkkkkkkuuukuuioki’okokORLD (1).pptxTARIQBICHAR
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture armAbdelwahab Wahib
 
Architecture_Ordinateur_preparations.ppt
Architecture_Ordinateur_preparations.pptArchitecture_Ordinateur_preparations.ppt
Architecture_Ordinateur_preparations.pptadonisyao
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...Pôle Systematic Paris-Region
 

Similar to Base des systèmes à microprocesseur (20)

Assembleur
AssembleurAssembleur
Assembleur
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
Quelques concepts sur l
Quelques concepts sur lQuelques concepts sur l
Quelques concepts sur l
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptx
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Cours algo1 (1)
Cours algo1 (1)Cours algo1 (1)
Cours algo1 (1)
 
Cours algo1
Cours algo1Cours algo1
Cours algo1
 
Initiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptxInitiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptx
 
Le PC en détail
Le PC en détailLe PC en détail
Le PC en détail
 
Materiel informatique 2011
Materiel informatique 2011Materiel informatique 2011
Materiel informatique 2011
 
003404788(1).pptx
003404788(1).pptx003404788(1).pptx
003404788(1).pptx
 
HELLO Wkkkkkkuuukuuioki’okokORLD (1).pptx
HELLO Wkkkkkkuuukuuioki’okokORLD (1).pptxHELLO Wkkkkkkuuukuuioki’okokORLD (1).pptx
HELLO Wkkkkkkuuukuuioki’okokORLD (1).pptx
 
Sujet 6
Sujet 6Sujet 6
Sujet 6
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture arm
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
Architecture_Ordinateur_preparations.ppt
Architecture_Ordinateur_preparations.pptArchitecture_Ordinateur_preparations.ppt
Architecture_Ordinateur_preparations.ppt
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 

More from Peronnin Eric

Carte multifonction 2017
Carte multifonction 2017Carte multifonction 2017
Carte multifonction 2017Peronnin Eric
 
Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016Peronnin Eric
 
Notions de semi conducteur
Notions de semi conducteurNotions de semi conducteur
Notions de semi conducteurPeronnin Eric
 
Opérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentielsOpérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentielsPeronnin Eric
 
Codage de l'information
Codage de l'informationCodage de l'information
Codage de l'informationPeronnin Eric
 

More from Peronnin Eric (8)

Carte multifonction 2017
Carte multifonction 2017Carte multifonction 2017
Carte multifonction 2017
 
Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016
 
Transistors
TransistorsTransistors
Transistors
 
Diodes
DiodesDiodes
Diodes
 
Notions de semi conducteur
Notions de semi conducteurNotions de semi conducteur
Notions de semi conducteur
 
Quadripôles
QuadripôlesQuadripôles
Quadripôles
 
Opérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentielsOpérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentiels
 
Codage de l'information
Codage de l'informationCodage de l'information
Codage de l'information
 

Recently uploaded

GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdfMariaClaraAlves46
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 

Recently uploaded (20)

GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 

Base des systèmes à microprocesseur

  • 1. Architecture des systèmes à microprocesseur Bases de l’informatique IUT de l’Indre Eric PERONNIN
  • 2. www.geii.eu 2 Le microprocesseur Unité de traitements (Central Processing Unit) capable d’exécuter du code reposant sur un jeu d’instructions spécifique  Réduit dans le cas des processeurs RISC  Cas de la plupart des microcontrôleurs – 35 instructions pour les PIC16 de Microchip – 75 instructions pour les PIC18 – 133 pour l’Atmega128A d’Atmel  Complexe : microprocesseurs CISC  Plusieurs centaines d’instructions – Tous les descendants de la famille x86 d’Intel dont ceux des architectures IA32 et IA64 actuelles – AMD compatible x86, IA32 et IA64 Architecture sans périphérique interne
  • 3. www.geii.eu 3 Le microcontrôleur Système complet sur une seule puce résultant de l’association  D’un cœur de microprocesseur  D’une mémoire de programme (souvent)  D’une mémoire de données (souvent)  De périphériques  mémoire EEPROM (informations de configuration)  timers  DAC et ADC  bus 2, 3 et 4 fils (I2C, SPI)  USART … Utilisation : divers systèmes embarqués ...
  • 4. www.geii.eu 4 Introduction Systèmes à processeur(s) : de la diversité  Electronique embarquée  Microcontrôleur 1 cœur : quelques centaines de MIPS – Gestion d’évènements et commande matériel simple » Divers fonctions en automobile » Petits automates – Interface utilisateur simple et configuration des circuits intégrés d’une carte électronique » Produits grand public audio/vidéo » Electroménager  Informatique nomade  Processeur multi-cœurs : quelques milliers de MIPS – Tablettes – Téléphones portables
  • 5. www.geii.eu 5 Introduction Systèmes à processeur(s) : de la diversité  Ordinateur personnels portables ou de bureau  Processeur multi-cœurs (2 à 12) : plusieurs centaines de milliers de MIPS  Supercalculateurs vectoriels  Le plus puissant du monde est chinois « Tianhe-2 » – 3 120 000 cœurs ou 260 000 Pentium XEON (12 cœurs) – 33 862 TFlops de puissance de calcul – 17,8 MW de puissance consommée – 1024 To de RAM – Système Kylin Linux
  • 6. www.geii.eu 6 Introduction Système à microprocesseur : 2 architectures mémoires de base possibles  Eléments communs  1 unité d’exécution d’instructions micro-programmées (le processeur, désigné par CPU)  1 circuit d’horloge assurant le cadencement synchrone du fonctionnement du système  1 décodeur d’adresse gérant la cartographie de l’espace mémoire  divers périphériques permettant de communiquer avec l’extérieur, de stocker des données en grande quantité  Architecture de Harvard  1 mémoire permettant le stockage du programme  1 mémoire assurant le stockage des données  Architecture de Von Neumann  1 mémoire permettant le stockage du programme et des données
  • 7. www.geii.eu 7 Introduction Système minimum de Von Neumann Microprocesseur Mémoire RAM Périphérique 1 Périphérique 2 Périphérique : mémoire de stockage Horloge Superviseur d’alimentation D E C O D E U R D ’ A D R E S S E S Bus de données Bus d’adresse Signaux de contrôle Mémoire RAM
  • 8. www.geii.eu 8 Bus système Bus d’adresse  Spécifie l’emplacement mémoire auquel le CPU accède  Possède M fils de signaux binaires notés AM-1 à A0 permettant de cibler 2M emplacements  Bus 16 bits : 65536 = 64K emplacements  Bus 20 bits : 1 048 576 = 1M emplacements  Bus 32 bits : 4G emplacements  Bus 64 bits : 1T emplacements Bus de donnée  Contient la donnée échangée entre le CPU et la mémoire ou un périphérique du système  Possède N fils de signaux binaires notés DN-1 à D0 où N est un multiple de 8  N = 8 : la donnée est un Octet  N = 16 : la donnée est un Mot (Word)  N = 32 : on parle de Double Mot (DWord)
  • 9. www.geii.eu 9 Eric PERONNIN Bus système–Décodeur d’adresses Bus de contrôle  Véhicule tous les autres signaux du CPU  CLK : l’horloge système  RW : informe si le CPU effectue une opération de lecture (RW = 1) ou d’écriture (RW = 0)  INT : informe le CPU d’une demande de traitement d’interruption  etc …  et les signaux du décodeur d’adresse Décodeur d’adresse  Assure le décodage de l’adresse pour respecter une cartographie mémoire donnée  Pour une adresse @ donnée, il assure la sélection du composant placé à cette adresse en générant un signal Chip Select (noté CS_) destiné à ce composant
  • 10. www.geii.eu 10 Cartographie mémoire Figure ou tableau spécifiant l’espace mémoire adressable réservé à chaque élément connecté sur le bus d’@  Exemple avec un bus mémoire sur 16 bits Mémoire RAM @ 0000h 7FFFh Périphérique 1 8000h 8FFFh Inutilisé Périphérique 2 A000h FFFFh Lorsque @ est comprise entre 0000h et 7FFFh, le décodeur d’adresse envoie un signal CS_RAM = 0 pour sélectionner la RAM. Si @ est comprise entre 8000h et 8FFFh, le décodeur d’@ envoie CS_PER1 = 0 pour sélectionner le Périphérique 1. Si @ est comprise entre A000h et FFFFh, le décodeur d’@ envoie CS_PER2 = 0 pour sélectionner le Périphérique 2.
  • 11. www.geii.eu 11 Structure interne d’un CPU Décodeur d’instructions / Unité d’exécution Queue d’instruction s Registres UAL Chargement d’instruction Mémoire de programme et de données Gestionnaire d’@ UAL = Unité Arithmétique et Logique
  • 12. www.geii.eu 12 Structure interne d’un CPU Eléments additionnels présents dans les processeurs d’aujourd’hui  Décodage/Exécution des instructions en parallèle (1 complexe et plusieurs simples)  Architectures multi-cœurs  Cache mémoire de différents niveaux avec contrôleurs associés pour palier à la lenteur de la mémoire centrale  L1 : mémoire en liaison directe avec le processeur – fonctionne à la fréquence du processeur – petite capacité (qques Ko)  L2 : en liaison avec le cache de niveau L1 et L3 – fonctionne à une fréquence moindre – capacité moyenne (qques centaines de Ko)  L3 : interface entre le cache L2 et la mémoire centrale – Fréquence plus faible que le processeur – capacité de qques Mo – partager entre les différents cœurs du processeur
  • 13. www.geii.eu 13 Structure interne d’un CPU Eléments additionnels présents dans les processeurs d’aujourd’hui  Unité multiple de calcul en virgule flottante double précision (80 bits)  Unité de calcul vectoriel  plusieurs calculs simultanés sur des entiers – 8 par cycles en 8 bits (pour la vidéo)  calculs vectoriels sur des flottants – 4 par cycles en simple précision  Contrôleur de mémoire intégré au CPU  Plus d’utilisation du chipset pour les traitements rapides  Processeur graphique intégré au CPU
  • 14. www.geii.eu 14 Cas concret : les processeurs Intel Année Modèle Fréquence CPU MIPS Architecture Bus interne Cache L1 Cache L2 Fréq. Bus Bus Externe Transistors Gravure Boitier Tension CPU TDP Remarque 1979 8086 10 MHz 0,75 16 bits 16 bits 10 MHz 20 bits (1 Mo) 29 000 3 µm 40 DIP 5 v Bus d'adresse sur 20 bits 1989 80386DX 33 MHz 11,4 32 bits 32 bits 33 MHz 32 bits (4 Go) 275 000 1 µm 5 v 1994 80486DX4 100 MHz 54 32 bits 64 bits 16 Ko 100 MHz 32 bits (4 Go) 1 600 000 0,6 µm 5 v 1998 Pentium MMX 233 MHz 300 32 bits 64 bits 16 Ko Inst. + 16 Ko Data 66 MHz 32 bits (4 Go) 3 100 000 250 nm 296 PGA 1,8 v Instructions MMX 2001 Pentium III 1 GHz 3438 32 bits 64 bits 16 Ko Inst. + 16 Ko Data 256 Ko 133 MHz 32 bits (4 Go) 28 000 000 180 nm 370 FC PGA 1,7 v 33 W Instructions SSE 2007 Core 2 Duo E4300 1800 MHz 19600 64 bits (2 cœurs) Multiples 2 x 32 Ko Inst. + 2 x 32 Ko Data 2 Mo 800 MHz (200 x 4) 64 bits (1 To) 167 000 000 65 nm 775 FC LGA6 0,85 v 65 W SSE, SSE2, SSE3, SSE4 2013 Core i7 4770K 3500 MHz 127000 64 bits (4 cœurs) Multiples 4 x 32 Ko Inst. + 4 x 32 Ko Data 4 x 256 Ko 1666 MHz 64 bits (1 To) 1 400 000 000 22 nm 1150 LGA 0,685 à 1,11 v 84 W Cache L3 de 8 Mo Du 8086 au i7  Le i7 d’aujourd’hui, toujours capable d’exécuter les instructions du premier processeur de PC, le 8086 de 1977 Historique  Au rythme d’innovations diverses, la nombre de transistors dans un processeur double environ tous les 2 ans suivant la loi de Moore Gordon Moore : cofondateur d’Intel avec Robert Noyce édicte sa loi dite de Moore en 1971 et toujours vérifiée à ce jour.
  • 15. www.geii.eu 15 Puce gravée d’un processeur Intel série Haswell
  • 18. www.geii.eu 18 Programmation des processeurs Intel d’architecture IA32 Repose sur  un jeu d’instructions 32 bits directement exécutable par le processeur  un ensemble de registres, mémoires internes de travail du processeur  registres généraux 32 bits – eax, ebx, ecx, edx qui permettent de réaliser différents types de calcul – chacun de ces registres peut être décomposé en sous registre de 16 et 8 bits. Exemple pour eax ah al ax eax Bits 31 16 15 8 7 0
  • 19. www.geii.eu 19 Programmation des processeurs Intel d’architecture IA32  des registres de déplacement sur 32 bits (index) – edi, esi, ebp, esp – dont les poids faibles sont accessibles par respectivement di, si, bp, sp  1 registre pointeur d’instruction sur 32 bits précisant l’adresse de la prochaine instruction à exécuter par le processeur – eip (poids faible accessible par le registre 16 bits ip)  des registres de segment 16 bits intéressants pour séparer les zones mémoires en fonction de leur rôle – cs pour le segment de code – ds, es, fs, gs pour les segments de données – ss pour le segment de pile  des registres spécifiques à certaines instructions pour le traitement parallèle ou les traitements en virgule flottante – 8 registres 128 bits (SSE, SSE2) – 8 registres 80 bits (ST0 à ST7 pour les calculs en flottant)
  • 20. www.geii.eu 20 Programmation des processeurs d’architecture IA32 1 registre d’état EFLAG renseignant sur l’état du système et la nature du résultat du dernier calcul effectué
  • 21. www.geii.eu 21 Eric PERONNIN Initiation à l’assembleur IA32 Objectifs purement pédagogiques  Connaître succinctement le fonctionnement d’un processeur de PC par la connaissance de ses instructions  Comprendre le travail réalisé par un compilateur C Outils employés : tous gratuits  Assembleur MASM32  Environnement de développement RadASM  Debugger OLLYDBG Remarque sur l’intérêt réel de programmer en assembleur  Sur PC  Aucun car les compilateurs produisent un code optimisé tenant compte des spécificités des processeurs  Exception faite, parfois, de la programmation de pilotes  Sur microcontrôleur  Parfois utile pour des besoins très spécifiques et ponctuels
  • 23. www.geii.eu 23 Eric PERONNIN Un premier programme (suite)
  • 24. www.geii.eu 24 Un premier programme (suite)
  • 25. www.geii.eu 25 Règles d’écriture d’un programme L’écriture d’un programme assembleur obéit à des règles :  La première colonne contient des labels ou étiquettes, des directives d’assembleur,  la seconde colonne contient des directives ou des instructions (mnémoniques),  la troisième colonne contient des opérandes et paramètres divers.  Enfin, tout ce qui se trouve après un point-virgule est considéré comme un commentaire. Note : on peut utiliser la 4ième colonne à cette fin.
  • 26. www.geii.eu 26 Document de référence - Notations Un document de référence  la datasheet INTEL Pentium IA32 Reference Instruction Set (2 tomes de 750 pages) Notations utilisées pour qualifier les opérandes d’une instruction  Opérandes de type registre :  reg8 représente un registre 8 bits (ah, al, bh, bl, ch, cl, dh, dl)  reg16 pour un registre général sur 16 bits (ax, bx, cx, dx, sp, bp, si, di)  reg32 pour les registres généraux sur 32 bits (eax, ebx, ecx, edx, esp, ebp, esi, edi)  segreg pour un registre de segment (cs, ds, ss, es)  Opérandes en valeurs immédiates :  imm8 pour une valeur sur 8 bits  imm16 pour une valeur sur 16 bits  imm32 pour une valeur sur 32 bits
  • 27. www.geii.eu 27 Notations Notations (suite)  Opérandes de type emplacement mémoire :  mem8 désigne un emplacement mémoire sur 8 bits  mem16 désigne un emplacement mémoire sur 16 bits  mem32 désigne un emplacement mémoire sur 32 bits  En cas d’ambiguïté sur le format d’un opérande mémoire, on précisera le type par un suffixe  BYTE PTR (si la cible doit être considérée comme un mem8),  WORD PTR (pour une cible de type mem16)  DWORD PTR pour préciser l’accès à une donnée sur mem32  Opérandes registres ou mémoires (instructions acceptant les deux types d’opérandes) :  r/m8 est la contraction de reg8 ou mem8  r/m16 est la contraction de reg16 ou mem16  r/m32 est la contraction de reg32 ou mem32
  • 28. www.geii.eu 28 Jeu d’Instructions - Affectation Instruction MOV  Syntaxe : mov destination,source  Destination : r/m8, r/m16, r/m32, segreg  Source : r/m8, r/m16, r/m32, imm8, imm16, imm32  Equivalent algorithmique : destination  source Différents modes d’adressage en fonction de l’origine des données  Adressage immédiat : spécification explicite de la valeur Exemple : eax 12  mov eax, 12  mov eax, 0Ch ; h pour hexa  mov eax, 1100b ; b pour binaire  Adressage par registre : valeur placée dans un registre Exemple : eax  ebx  mov eax, ebx
  • 29. www.geii.eu 29 Modes d’adressage Différents modes d’adressage (suite)  Adressage mémoire direct : donnée située à un emplacement mémoire indiqué explicitement Exemple : eax  (0ACA9910h)  mov eax, [0ACA9910h] Note : on dit que eax reçoit le contenu de l’emplacement mémoire 0ACA9910h  Adressage mémoire indirect : donnée située à un emplacement mémoire indiqué par un registre Exemple : eax  (ebp)  mov eax, [ebp] Note : on dit que eax reçoit le contenu de l’emplacement mémoire pointé par ebp
  • 30. www.geii.eu 30 Modes d’adressage Différents modes d’adressage (suite)  Adressage mémoire indexé : donnée située à un emplacement mémoire indiqué par calcul Base+Décalage Exemple : eax  (ebp+10)  mov eax, [ebp + 10] Note : ebp est le registre de Base ; 10 est le décalage Exemple : ebx  (ebp + esi + 10)  mov ebx, [ebp+esi+10] Note : esi + 10 constitue le décalage (esi seul est l’index)  Mixage des modes d’adressage Exemple : (ebp)  12  mov word ptr [ebp], 12 Note : word ptr précise que la valeur 12 est une donnée sur 16 bits (donc les adresses ebp et ebp+1 seront modifiées)  mov byte ptr [ebp], 12 Note : byte ptr précise que la valeur 12 est une donnée sur 8 bits (donc seul l’octet pointé par ebp est modifié)
  • 31. www.geii.eu 31 Unité arithmétique et logique - Registre d’état Fonctionnement basé sur l’unité arithmétique et logique (UAL ou ALU)  L’ALU nécessite 1 ou 2 opérandes.  Elle renvoie un résultat et des indicateurs binaires dans le FLAGS REGISTER (sur 32 bits en IA32) Bits du FLAGS REGISTER  CF = Carry Flag : indique un dépassement de capacité dans les opérations non signées (unsigned overflow)  PF = Parity Flag : drapeau de parité, mis à 1 si le résultat contient un nombre pair de 1  Z = Zero Flag : mis à 1 quand le résultat vaut 0  SF = Sign Flag : indique si le résultat est négatif (SF prend en fait la valeur du bit de poids fort du résultat)  IF = Interrupt Enable Flag : autorise les interruptions externes si IF = 1.
  • 32. www.geii.eu 32 Registre d’état (suite)  DF = Direction Flag : drapeau utile pour les instructions sur chaînes indiquant le sens de traitement (0 = en avant ; 1 = en arrière).  OF = Overflow Flag : OF = 1 si une opération signée aboutit à un dépassement de capacité. Remarque : ces drapeaux ne sont pas accessibles directement mais utilisés par des instructions (opérations, branchements …)
  • 33. www.geii.eu 33 Instructions arithmétiques Additions  adc op1,op2  Équivalent algo : op1  op1 + op2 + CF où CF est le Carry Flag  add op1,op2  Équivalent algo : op1  op1 + op2  inc op1  Equivalent algo : op1  op1 + 1  Utile pour le traitement des boucles Soustractions  sbb op1,op2  Equivalent algo : op1  op1 – (op2+CF) Rappel : CF est le Carry Flag  sub op1,op2  Equivalent algo : op1  op1 – op2 Note : op1 et op2 désignent des opérandes qui peuvent être de différents types : r/m8 , r/m16, r/m32, imm8, imm16, imm32 …
  • 34. www.geii.eu 34 Instructions arithmétiques Multiplication non signée  mul r/m8  Equivalent : ax  ax * r/m8 (multiplication sur 8 bits)  mul r/m16  Equivalent : dx:ax  ax * r/m16 (multiplication sur 16 bits)  Remarque : le résultat est donc sur 32 bits d’où l’association de dx:ax pour composer un registre sur 32 bits  mul r/m32  Equivalent : edx:eax  eax * r/m32 (multiplication sur 32 bits)  Même remarque que pour la multiplication sur 16 bits : ici edx:eax compose un registre du 64 bits pour le résultat Division  Voir documentation IA32 lors des Travaux Pratiques Opérations sur des flottants 32 bits  Cf documentation.
  • 35. www.geii.eu 35 Opérations logiques Opérations logiques bit à bit  and op1,op2 : op1  op1 and op2 (c’est un ET bit à bit)  or op1,op2 : op1  op1 or op2 (OU bit à bit)  not op op  NON op (complément à 1 bit à bit)  xor op1,op2 op1  op1 OU EXCLUSIF op2  test op1,op2 :  c’est un AND sans sauvegarde dans op1
  • 36. www.geii.eu 36 Opérations « niveau bit » Instructions de décalages de bits  shl op,count et sal op,count (Shift Arithmetic Left et Shift Logical Left)  Effectue un décalage des bits de op vers la gauche de count bits.  Les bits de poids faibles entrants sont fixés à 0.  Le dernier bit sortant est conservé dans CF.  sar op,count (Shift Arithmetic Right)  Décale op de count bits vers la droite.  CF contient le dernier bit sortant par la droite.  Les bits entrants sont fixés à 0.  Le bit de poids fort résultant est identique au bit de poids fort initial de op.  shr op,count (Shift Logical Right)  Idem shl mais vers la droite.
  • 37. www.geii.eu 37 Branchements conditionnés Comparaison : CMP op1,op2  Effectue la comparaison entre op1 et op2.  op1 et op2 restent inchangés; ce sont les flags qui sont affectés. Branchements conditionnés  je addr : saut si égal  jne addr : saut si non égal  jo addr : saut si overflow  jno addr : saut si non overflow  jp addr : saut si parité paire  jnp addr : saut si parité impaire Cas d’un résultat non signé  jbe addr : saut si inférieur ou égal  jnbe addr : saut si supérieur  jc addr : saut si inférieur (ou si CF = 1)  jnc addr : saut si supérieur ou égal (ou si CF = 0)
  • 38. www.geii.eu 38 Branchements conditionnés ou non Cas d’un résultat signé  jl addr : saut si inférieur  jge addr : saut si supérieur ou égal  jle addr : saut si inférieur ou égal  jg addr : saut si supérieur Branchements inconditionnels :  jmp addr : Saute à l’adresse addr sans condition Instructions de boucles  Elles utilisent le registre de boucle cx  jcxz addr : saut si cx = 0  loop addr : cx  cx – 1 et saut si cx <> 0  loope ader : cx  cx – 1 et saut si cx <> 0 ou si ZF = 1  loopne addr : cx  cx – 1 et saut si cx <> 0 ou si ZF = 0
  • 39. www.geii.eu 39 La pile Qu’est-ce que la pile ? A quoi sert-elle ?  C’est une zone mémoire utilisée pour la sauvegarde temporaire de registres et d’adresses.  Elle est de type LIFO (Last In, First Out) : la dernière donnée entrée est la première récupérée (à comparer avec un empilement de pièces).  La dernière donnée écrite dans la pile est pointée par le pointeur de pile : esp (Extended Stack Pointer).
  • 40. www.geii.eu 40 Instructions de pile en IA32 Empilement de données  push reg32 : permet d’empiler un registre 32 bits dans la pile.  push imm32 : empile une valeur codée sur 32 bits.  push (addr) : empile la valeur 32 bits mémorisée à l’adresse addr. addr peut être spécifiée de façon directe, indirecte ou indexée. Dépilement de données  L’instruction « pop » s’utilise comme l’instruction « push » et réalise l’opération inverse (pop imm32 est bien sûr impossible).
  • 41. www.geii.eu 41 Fonctionnement de la pile Initialisation du pointeur de pile mov esp, FFFFFFFEh ; avec un OS, c’est l’OS qui ; impose l’emplacement de la pile Initialisation et stockage dans la pile d’un registre mov eax, 1234h ; eax  1234h push eax ; on sauve eax dans la pile Récupération de la valeur stockée dans la pile dans un autre registre pop ebx ; on dépile la dernière donnée ; écrite dans la pile dans ebx
  • 42. www.geii.eu 42 Ecriture de sous-programmes Pourquoi écrire des sous-programmes ou fonctions  Parce qu’ils peuvent être utilisés plusieurs fois.  Pour une plus grande lisibilité du programme principal.  Parce que le découpage en fonction implique des phases de tests et de validation progressives : chaque fonction peut être validée individuellement. Comment en écrire en assembleur ?  En exploitant la pile ou des registres pour le passage des paramètres.  En utilisant des instructions spécifiques : calladdr ; pour appeler un sous-programme ret ; pour effectuer un retour à la fin du ; sous-programme.