Ebp, esp e stack frame em assembly com nasm
Eu tenho algumas perguntas sobre ebp, esp e stack frame no seguinte código.
Por que subtraímos 28 da esp? Nós temos duas variáveis locais x e y no main. Então, por que não subtraímos 8?
E não colocamos valores para empilhar da direita para a esquerda? Então, por que adicionamos 1 a [eax + 8] em vez de [eax + 4]?
Eu sou um pouco confuso sobre essa estrutura. Você pode me ajudar? THX.
func(int a, int b, int c)
{
return a+b+c;
}
main()
{
int x, y=3;
x=func(y,2,1);
}