文件名称:栈演进图.vsdx
文件大小:32KB
文件格式:VSDX
更新时间:2023-12-29 05:39:46
栈 堆栈
函数栈帧分析: ① 注意lr和fp的入栈位置 lr是R14,fp是R11,所以入栈后lr在高地址,fp在低地址 ② 此次main函数栈中保存了lr 这是因为main函数还要调用func1函数,所以将lr寄存器压栈。即非叶子函数在建立函数栈时,需要将lr入栈保存。 ③ 超出r0 ~ r3的参数通过主调函数栈传递 示例中的5和6就通过main函数栈传递,而且func1在使用这2个参数时也是从main函数栈中取出,并没有复制一份到自己的栈中。 ④ 通过r0 ~ r3传递的参数会被压入被调函数栈 这也就是AAPCS中被调函数无需恢复r0 ~ r3的原因