Ce qui se passe en langage d'assemblage lorsque vous appelez une méthode/fonction?

Si j'ai un programme en C++/C (la langue n'a pas beaucoup d'importance, juste pour illustrer un concept):

#include <iostream>    

void foo() {
    printf("in foo");
}

int main() {
    foo();
    return 0;
}

Ce qui se passe dans l'assemblée? Je ne suis pas à la recherche de code assembleur que je ne suis pas allé loin en elle encore, mais ce qui est le principe de base?

  • Notez que vous ne l'appelez pas "méthodes" en c, juste de "fonctions". C'est pourquoi il n'a pas de sens de faire comme si c et c++ sont dans la même langue.
  • "la langue n'a pas d'importance combien": les concepts sont assez similaires pour les langages compilés. Les langages interprétés (comme php, javascript) peuvent être très différents. Je crois que vous êtes à la recherche pour le comportement de langages compilés?
  • C++ n'a pas de notion de méthodes, seules les fonctions de membre.