ZHCADC5A June 2013 – June 2020
如节 3.2所述,函数负责保留指定为被调用者保存 的寄存器内容,这通常是通过在进入函数时将修改后的寄存器保存在本地帧并在退出前将其恢复来完成的。通常,被调用者保存的寄存器在栈上的顺序和位置并不重要,只要它们从保存时的相同位置恢复即可。在大多数情况下,编译器以任意顺序保存寄存器。但是,有一些功能需要已知的顺序:
当针对 MSP430X 进行编译或支持异常处理时,编译器始终按照 PUSHM 相对顺序保存寄存器,从帧的底部(最低地址)开始。如果未保存任何寄存器,则寄存器将打包,使栈中没有空洞,但相对顺序保持不变。