Appearance
堆
一块空闲的内存
c
char heap_buf[1024];
int pos = 0;
void *my_malloc(int size)
{
int old_pos;
pos += size;
return &heap_bunf[old_pos];
}
这一段内存被称为内存
c
void my_free(void buf)
{
}
栈
c
void c_func(void);
void b_func(void);
int a_func(int val)
{
int a = 0;
a += val;
b_func();
c_func();
return a;
}
返回地址现保存在LR寄存器, 保存在栈中, 在函数a_func调用函数b_func的时候会把LR寄存器中的值保存下来, 还会保存局部变量
C函数开头
- 划分出栈用来保存变量, SP寄存器
- LR寄存器入栈
- 执行代码