Co dzieje się w języku asemblerowym, gdy wywołujesz metodę / funkcję?

Jeśli mam program w C ++ / C, to (język nie ma większego znaczenia, wystarczy zilustrować koncepcję):

#include <iostream>    

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

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

Co dzieje się w zespole? Właściwie nie szukam kodu montażowego, ponieważ jeszcze nie doszedłem tak daleko, ale jaka jest podstawowa zasada?

questionAnswers(11)

yourAnswerToTheQuestion