質問のタイトルが正しいかどうかわかりませんが、ランタイム スタックを勉強していて、次の C コードがあります。
int main() {
int a, b, c , x;
a = 4;
b = 5
c = 6
x = func(a, b, c);
return;
}
int func(int x, int y, int z) {
int p, q, r;
p = x*x;
q = y/z;
r = p + q;
return r;
}
これはコンパイルされ、場所 x3000 にロードされます。
私はlc3と呼ばれるシミュレートされたコンピューターを扱っています。このコードが実行されたときにランタイム スタックがどのように見えるかを調べる必要があります。このトピックに関する私の理解は、実際にこれを解決するにはあまりにも限られていますが、次のように考える必要があります。
x0000
(I don't know how the return should look either)
(Assignments that I don't know how to interpret)
r
q
p
main's frame pointer
Return address to main
Return value to main
x a
y b
z c
(I don't know the assignments should look in the run-time stack)
x
c
b
a
xEFFF
誰かがこの件について明確に説明してくれることを願っています。前もって感謝します。