Я не знаю, если название моего вопроса является правильным, но я учусь во время выполнения стеки и у меня есть следующий код C:время выполнения Stack коды 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
Я надеюсь, что кто-то может предложить мне некоторую ясность в эту тему. Заранее спасибо.