ZHCADC5A June 2013 – June 2020
理论上,所有展开序列都采用以下形式:
步骤 1:恢复 SP
在恢复被调用者保存的寄存器之后,实际的收尾程序才会恢复 SP,但由于堆栈展开是虚拟操作,TDEH 的仿真展开可能会先执行 SP 恢复。这简化了其他被调用者保存的寄存器的恢复操作。
SP 将通过递增一个常量来恢复。 除了显式递增之外,SP 也会隐式递增,以考虑被调用者保存的区域的大小。
步骤 2:恢复寄存器
理论上,被调用者保存的寄存器以寄存器安全调试 顺序(节 4.5.2)恢复,从(旧的)SP 指向的位置开始,并移动到较低的地址。
步骤 3:返回
每个展开序列以隐式或显式“RET ”结束,这表示当前帧的展开已完成。