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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les chiffres
  5. 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.