Я пытаюсь понять, как реестр ссылок и указатель фрейма работают в ARM. Я был на нескольких сайтах, и я хотел подтвердить свое понимание.
Предположим, что у меня был следующий код:
int foo(void)
{
// ..
bar();
// (A)
// ..
}
int bar(void)
{
// (B)
int b1;
// ..
// (C)
baz();
// (D)
}
int baz(void)
{
// (E)
int a;
int b;
// (F)
}
и я вызываю foo(). Будет ли регистр ссылок содержать адрес для кода в точке (A), а указатель кадра содержит адрес в коде в точке (B)? И указатель стека мог бы быть любым, где внутри bar(), после того, как были объявлены локальные жители?
[edit] Добавлен другой вызов функции baz()