Pile et appel de fonction
La pile d'exécution et son pointeur, l'empilement et le dépilement, ce que fait un appel et son retour, le cadre de pile, la convention d'appel et le débordement de pile.
- 23 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
Quelques cartes du deck
Pile d'exécution : de quoi s'agit-il ?
Voir la réponse
Zone de mémoire gérée en dernier entré, premier sorti, où chaque appel de fonction range ses données le temps de son exécution.
La dernière fonction appelée est la première à finir : c'est ce qui fait fonctionner appels imbriqués et récursion.
Le pointeur de pile vaut 0x1000. Que vaut-il après ces deux instructions, avec des mots de 4 octets ?
```arm
PUSH {R0}
PUSH {R1}`- 0x0FF8
- 0x1008
- 0x0FFC
- 0x0FFE
Voir la réponse
0x0FF8
Chaque PUSH retire 4 : 0x1000, puis 0x0FFC, puis 0x0FF8. 0x1008 ferait croire que la pile monte, 0x0FFC ne compte qu'un empilement, 0x0FFE retire un octet par empilement au lieu de quatre.
La pile suit la règle … : on n'empile et on ne dépile qu'à son ….
Voir la réponse
La pile suit la règle dernier entré, premier sorti : on n'empile et on ne dépile qu'à son sommet.
Comme une pile d'assiettes : pour atteindre celle du dessous, on enlève d'abord celles du dessus.
Cadre de pile : de quoi s'agit-il ?
Voir la réponse
Bloc de la pile propre à un appel de fonction, qui contient ses paramètres, son adresse de retour et ses variables locales.
Il naît à l'appel et disparaît au retour. Deux appels de la même fonction ont deux cadres distincts, donc des variables locales distinctes.