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