SlideShare une entreprise Scribd logo
1  sur  10
La pile – Module
Microprocesseur
TARIK ZAKARIA BENMERAR, PHD
DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
Définition
 La Pile est une zone de la mémoire utilisée pour conserve
provisoirement des données.
 Elle est aussi principalement utilisée dans le mécanisme des appels de
procédures (fonctions).
 Dans l’architecture x86, La zone mémoire de la pile est pointée par le
registre SS (segment de pile) et par le registre SP (indicateur de pile).
L'adresse courante pointée par SS:SP s'appelle le sommet de la pile.
 Dans l’architecture ARM, seul le registre SP est utilisée (pas de
mécanisme des segments dans cette architecture).
Les instructions d’empile et de dépile
x86 (8086)
Les instructions
push et pop
sont utilisées pour
empiler et dépiler
de la pile
Les instructions d’empile et de dépile
ARM
Les instructions
push et pop
(plusieurs registres)
sont aussi utilisées
Mais différentes
implémentations
existent.
push {r11, lr} pop {r11, pc}
Appels de procédure
Mécanisme d’appels d’une procédure
Appels de procédure
Pile d’exécution
Appels de procédure
Etat de la pile/les registres après l’appelle de procédure
call max
MOV AH, 01h
x86
ARM
max :
MOV DX, 01h
max :
push {lr}
bl max2
pop {lr}
MOV r2, r3
bl max
MOV R1, #01h
Appels de procédure
Sauvegarder le pointeur de contexte
call max
MOV AH, 01h
x86
ARM
max :
MOV DX, 01h
PUSH BP
MOV BP, SP
SUB SP, 16h
max :
push {lr}
bl max2
pop {lr}
mov r2, r3
push {r11}
add r11, sp, #0h
sub sp, sp, #10h
bl max
mov R1, #01h
Appels de procédure
Restaurer le pointeur de contexte
call max
MOV AH, 01h
x86
ARM
max :
.
.
.
.
MOV SP, BP
POP BP
max :
.
.
.
.
sub sp, r11, #00h
pop {r11}
bl max
mov R1, #01h
Appels de procédure
Etat de la pile/les registres après le retour de procédure
call max
MOV AH, 01h
x86
ARM
max :
.
.
.
ret
max :
.
.
.
bx lr
bl max
MOV R1, #01h
Jump avec switch de mode automatique
(mode thumb ou non)

Contenu connexe

Tendances

Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursSana Aroussi
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 
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
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptionsSana Aroussi
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Architecture du microprocesseur
Architecture du microprocesseurArchitecture du microprocesseur
Architecture du microprocesseurOndernemersschool
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threadsSana Aroussi
 
Ch8 architecture
Ch8 architectureCh8 architecture
Ch8 architecturemickel iron
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)sunprass
 
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
 
API et Supervision industrielle
API et Supervision industrielle API et Supervision industrielle
API et Supervision industrielle sarah Benmerzouk
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2youri59490
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresAbdoulaye Dieng
 

Tendances (20)

Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
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
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
 
Assembleur
AssembleurAssembleur
Assembleur
 
Assembleur
AssembleurAssembleur
Assembleur
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Architecture du microprocesseur
Architecture du microprocesseurArchitecture du microprocesseur
Architecture du microprocesseur
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Ch8 architecture
Ch8 architectureCh8 architecture
Ch8 architecture
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)
 
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
 
API et Supervision industrielle
API et Supervision industrielle API et Supervision industrielle
API et Supervision industrielle
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2
 
Final
FinalFinal
Final
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Ladder
LadderLadder
Ladder
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoires
 

Similaire à Chapitre 7 - la pile

Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086ahmedyes
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDmohamedsaidi212001
 
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdfChapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdfAhmedJguirim
 
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
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspgharbisalah
 
cours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfcours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfKamalZeghdar
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurAbdoulaye Dieng
 

Similaire à Chapitre 7 - la pile (10)

Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdfChapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
 
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
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
cours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfcours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdf
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseur
 

Plus de Tarik Zakaria Benmerar

Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusVideostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusTarik Zakaria Benmerar
 
Chapitre 6 - les instructions de chaînes de caractères
Chapitre 6  - les instructions de chaînes de caractèresChapitre 6  - les instructions de chaînes de caractères
Chapitre 6 - les instructions de chaînes de caractèresTarik Zakaria Benmerar
 
Chapitre 3 - échanges de données et opérations arithmétiques - binaires
Chapitre 3  - échanges de données et opérations arithmétiques - binairesChapitre 3  - échanges de données et opérations arithmétiques - binaires
Chapitre 3 - échanges de données et opérations arithmétiques - binairesTarik Zakaria Benmerar
 
Chapitre 1 - représentation numérique des données
Chapitre 1  - représentation numérique des donnéesChapitre 1  - représentation numérique des données
Chapitre 1 - représentation numérique des donnéesTarik Zakaria Benmerar
 
Chapitre 3 - Protocole Bus CAN (2020/2021
Chapitre 3 - Protocole Bus CAN (2020/2021Chapitre 3 - Protocole Bus CAN (2020/2021
Chapitre 3 - Protocole Bus CAN (2020/2021Tarik Zakaria Benmerar
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Tarik Zakaria Benmerar
 
Chapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANsChapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANsTarik Zakaria Benmerar
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IPTarik Zakaria Benmerar
 
Cours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : TransmissionCours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : TransmissionTarik Zakaria Benmerar
 
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CANCours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CANTarik Zakaria Benmerar
 
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Tarik Zakaria Benmerar
 

Plus de Tarik Zakaria Benmerar (20)

Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusVideostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
 
Cyber pink - Time Management
Cyber pink -  Time Management Cyber pink -  Time Management
Cyber pink - Time Management
 
Chapitre 6 - couche transport
Chapitre 6  - couche transportChapitre 6  - couche transport
Chapitre 6 - couche transport
 
Chapitre 5 - couche réseaux
Chapitre 5 - couche réseauxChapitre 5 - couche réseaux
Chapitre 5 - couche réseaux
 
Chapitre 4 - couche liaison
Chapitre 4 - couche liaisonChapitre 4 - couche liaison
Chapitre 4 - couche liaison
 
Chapitre 3 - connecteurs et câbles
Chapitre 3 -   connecteurs et câblesChapitre 3 -   connecteurs et câbles
Chapitre 3 - connecteurs et câbles
 
Chapitre 2 - Transmission
Chapitre 2  - TransmissionChapitre 2  - Transmission
Chapitre 2 - Transmission
 
Chapitre 1 - notions fondamentales
Chapitre 1 -  notions fondamentalesChapitre 1 -  notions fondamentales
Chapitre 1 - notions fondamentales
 
Chapitre 6 - les instructions de chaînes de caractères
Chapitre 6  - les instructions de chaînes de caractèresChapitre 6  - les instructions de chaînes de caractères
Chapitre 6 - les instructions de chaînes de caractères
 
Chapitre 3 - échanges de données et opérations arithmétiques - binaires
Chapitre 3  - échanges de données et opérations arithmétiques - binairesChapitre 3  - échanges de données et opérations arithmétiques - binaires
Chapitre 3 - échanges de données et opérations arithmétiques - binaires
 
Chapitre 1 - représentation numérique des données
Chapitre 1  - représentation numérique des donnéesChapitre 1  - représentation numérique des données
Chapitre 1 - représentation numérique des données
 
Chapitre 3 - Protocole Bus CAN (2020/2021
Chapitre 3 - Protocole Bus CAN (2020/2021Chapitre 3 - Protocole Bus CAN (2020/2021
Chapitre 3 - Protocole Bus CAN (2020/2021
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)
 
Chapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux EthernetChapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux Ethernet
 
Chapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANsChapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANs
 
Chapitre 2 - Réseaux locaux
Chapitre 2 - Réseaux locauxChapitre 2 - Réseaux locaux
Chapitre 2 - Réseaux locaux
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
 
Cours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : TransmissionCours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : Transmission
 
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CANCours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
 
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
 

Chapitre 7 - la pile

  • 1. La pile – Module Microprocesseur TARIK ZAKARIA BENMERAR, PHD DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
  • 2. Définition  La Pile est une zone de la mémoire utilisée pour conserve provisoirement des données.  Elle est aussi principalement utilisée dans le mécanisme des appels de procédures (fonctions).  Dans l’architecture x86, La zone mémoire de la pile est pointée par le registre SS (segment de pile) et par le registre SP (indicateur de pile). L'adresse courante pointée par SS:SP s'appelle le sommet de la pile.  Dans l’architecture ARM, seul le registre SP est utilisée (pas de mécanisme des segments dans cette architecture).
  • 3. Les instructions d’empile et de dépile x86 (8086) Les instructions push et pop sont utilisées pour empiler et dépiler de la pile
  • 4. Les instructions d’empile et de dépile ARM Les instructions push et pop (plusieurs registres) sont aussi utilisées Mais différentes implémentations existent. push {r11, lr} pop {r11, pc}
  • 5. Appels de procédure Mécanisme d’appels d’une procédure
  • 6. Appels de procédure Pile d’exécution
  • 7. Appels de procédure Etat de la pile/les registres après l’appelle de procédure call max MOV AH, 01h x86 ARM max : MOV DX, 01h max : push {lr} bl max2 pop {lr} MOV r2, r3 bl max MOV R1, #01h
  • 8. Appels de procédure Sauvegarder le pointeur de contexte call max MOV AH, 01h x86 ARM max : MOV DX, 01h PUSH BP MOV BP, SP SUB SP, 16h max : push {lr} bl max2 pop {lr} mov r2, r3 push {r11} add r11, sp, #0h sub sp, sp, #10h bl max mov R1, #01h
  • 9. Appels de procédure Restaurer le pointeur de contexte call max MOV AH, 01h x86 ARM max : . . . . MOV SP, BP POP BP max : . . . . sub sp, r11, #00h pop {r11} bl max mov R1, #01h
  • 10. Appels de procédure Etat de la pile/les registres après le retour de procédure call max MOV AH, 01h x86 ARM max : . . . ret max : . . . bx lr bl max MOV R1, #01h Jump avec switch de mode automatique (mode thumb ou non)