O que acontece na linguagem assembly quando você chama um método / função?
Se eu tenho um programa em C ++ / C que (a linguagem não importa muito, apenas precisava ilustrar um conceito):
#include <iostream>
void foo() {
printf("in foo");
}
int main() {
foo();
return 0;
}
O que acontece na montagem? Na verdade, não estou procurando código de montagem, pois ainda não cheguei tão longe, mas qual é o princípio básico?