给定 C 代码的堆栈图
Diagram of Stack Given C Code
给定下面的 C 代码,汇编语言 (AVR) 堆栈 会是什么样子。
我正在尝试了解 C 代码如何转换为 AVR 汇编语言,我需要能够执行以下操作以准备可能出现的编程问题我的考试。
int x;
int foo(char a, int b) {
int z;
}
int main() {
int q = foo('a',0x93);
}
上述 C 代码在 AVR 中的堆栈表示形式是什么?
foo 函数的堆栈帧类似于以下内容:首先是参数,然后是保存的帧指针,return 地址然后是局部变量。 Int 是 4 个字节,所以程序自然会从 esp 中减去 4 为局部变量腾出空间。
这是视觉上的:
int b < bottom of stack, highest memory address
char a
ret address
fp
local variables < top of stack, lowest memory address
给定下面的 C 代码,汇编语言 (AVR) 堆栈 会是什么样子。
我正在尝试了解 C 代码如何转换为 AVR 汇编语言,我需要能够执行以下操作以准备可能出现的编程问题我的考试。
int x;
int foo(char a, int b) {
int z;
}
int main() {
int q = foo('a',0x93);
}
上述 C 代码在 AVR 中的堆栈表示形式是什么?
foo 函数的堆栈帧类似于以下内容:首先是参数,然后是保存的帧指针,return 地址然后是局部变量。 Int 是 4 个字节,所以程序自然会从 esp 中减去 4 为局部变量腾出空间。
这是视觉上的:
int b < bottom of stack, highest memory address
char a
ret address
fp
local variables < top of stack, lowest memory address