Cours 8 5. Appels de fonctions Le matériel Concepts de pile 12/09/2018 5. Appels de fonctions Concepts de pile Concepts de passage de paramètres Concepts de variable locale Le matériel Chapitre 8 CSA Synthèse du professeur sif-1053
Appel de fonctions Lors de l’appel à une fonction, comment fait-on pour retourner à la suite de l’exécution de la fonction appelante après que la fonction appelée soit terminée ? Quel est le mécanisme qui permet ce retour ? sif-1053
Appel de fonctions Dans un environnement multitâche, plusieurs programmes peuvent faire appel à des fonctions dans une librairie dynamique Comment les variables locales peuvent-elles rester intègre ? sif-1053
La pile et l’adresse de retour EIP: extended instruction pointer sif-1053
La pile et pointeur de pile sif-1053
Fonction en langage C sif-1053
Éléments fondamentaux de la programmation en langage C Fonctions et passage de paramètres En langage C, nous pouvons passer des informations aux fonctions via son interface et ce de deux façons distinctes: Passage par valeur: valeurs actuelles sont passées Passage par référence (adresse): pointeurs sont passés sif-1053
Prototype de la fonction Éléments fondamentaux de la programmation en langage C Fonctions, passage de paramètres (par valeur) et valeur retournée Prototype de la fonction sif-1053
Éléments fondamentaux de la programmation en langage C Fonctions et passage de paramètres (par adresse) sif-1053
Accès à la pile sif-1053
Appel de fonction et assembleur EBP pointe sur le début de la zone pile réservée à la fonction Fin de la fonction Appel de fonction Passage de paramètres Dans le DEBUGGER taper ALT+8 pour obtenir le code assembleur sif-1053
Appel de fonctions et la pile EBP: extended base pointer ESP: extended stack pointer sif-1053
Appels: average() et printf() Appel de fonctions et assembleur (VS 2015) Appels: average() et printf() sif-1053
Appels: retour de average() Appel de fonctions et assembleur (VS 2015) Appels: retour de average() sif-1053
Erreur typique de pointeur en langage C sif-1053