ZHCADC5A June 2013 – June 2020
至少有两种情况需要标准化布局局部帧并且对由被调用方保存的寄存器进行排序,它们是异常处理和调试。
本节介绍用于以下情形的约定:管理栈、帧的一般布局、由被调用方保存区域的布局。
栈向零增长。SP 指向该函数帧内的最低地址位置。也就是分配 0(SP),但不分配 -1(SP)。
使用具有正偏移量的 SP 相对寻址来访问帧中的对象。
编译器可自由分配一个或多个“帧指针”寄存器来访问帧。TI 编译器 不使用帧指针,因此单个调用帧仅限于 0xffff 字节。
如果帧指针不是函数之间链接的一部分,则由工具链自行决定选择是否使用帧指针、使用哪个寄存器,以及指向何处。但是,异常处理栈展开指令假设没有可用帧指针。
函数的栈帧包含以下区域:
在分配帧之前,SP 指向返回地址(用于中断函数的 SR)。