C ++ (zagnieżdżone) instrukcje wywołania funkcji - rejestry

WC ++ FAQ:

Zakładając typową implementację C ++, która ma rejestry i stos, rejestry i parametry są zapisywane na stosie tuż przed wywołaniem g (), następnie parametry są odczytywane ze stosu wewnątrz g () i odczytywane ponownie w celu przywrócenia rejestrów podczas g () powraca do f ().

dotyczące zagnieżdżonego wywołania funkcji

void f()
{
  int x = /*...*/;
  int y = /*...*/;
  int z = /*...*/;
  ...code that uses x, y and z...
  g(x, y, z);
  ...more code that uses x, y and z...
}

1 / Czy wszystkie implementacje C ++ mają rejestry i stos? Czy to znaczy: implementacja zależy od kompilatora / procesora / architektury komputera?

2 / Jaka jest sekwencja instrukcji (bez języka asemblera, tylko duży obraz), gdy dzwonięf() ? Czytałem rozbieżne rzeczy na ten temat, a także nie pamiętam, że rejestrów, o których mowa, ale tylko stos.

3 / jakie dodatkowe cechy / punkty należy podkreślić, gdy masz do czynienia z funkcjami zagnieżdżonymi?

dzięki

questionAnswers(2)

yourAnswerToTheQuestion