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}
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)