我不知道我的问题的标题是否正确,但我正在研究运行时堆栈并且我有以下 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
我希望有人可以在这个主题上为我提供一些清晰的信息。先感谢您。