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