Ebp, esp und Stapelrahmen in Montage mit nasm

Ich habe ein paar Fragen zu ebp, esp und stack frame in folgendem Code.

Warum haben wir 28 von esp abgezogen? Wir haben zwei lokale Variablen x und y in main. Warum haben wir also nicht 8 subtrahiert?

Und setzen wir nicht Werte von rechts nach links? Warum haben wir [eax + 8] statt [eax + 4] um 1 erhöht?

Ich bin ein bisschen verwirrt über diese Struktur. Kannst du mir helfen? Vielen Dank.

func(int a, int b, int c)
{
  return a+b+c;
}
main()
{
 int x, y=3;
 x=func(y,2,1);
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage