Dlaczego mój kompilator rezerwuje więcej miejsca niż wymagane dla ramki stosu funkcji?

Mam funkcję:

void func(int a)
{
    int x = a+2;
}

W kodzie zespołu w funkcji prolog:

push %ebp
mov %esp, %ebp
sub $0x10, %esp

Kod musi jedynie zarezerwować miejsce na x, tj. 4 bajty. Ale rezerwuje 16 bajtów. Dlaczego ? Zawsze widziałem to, aby zarezerwować więcej miejsca niż jest to wymagane.

Zgaduję: ma tendencję do przechowywania w 16 bajtach. tj. jeśli potrzebuję powiedzieć 20 bajtów, zarezerwuje 32 bajty, bez względu na wszystko.

questionAnswers(1)

yourAnswerToTheQuestion