リンク レジスタとフレーム ポインタが 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() 内のどこにでもある可能性がありますか?