TI的SPRA590中,关于栈的恢复的疑问
本帖最后由 hbch609 于 2011-10-29 15:20 编辑本片文档介绍可被 C 调用的汇编函数的写法。函数进入时,需要保存上下文,退出时需要恢复,我疑问是:
1. 示例代码中,恢复过程, ar0 好像保存的是 old sp,请高手指点一下。
.def _fir
.text
_fir:
popd *+ ; 返回地址
sar ar0, *+ ; 保存旧的 frame pointer
sar ar1, * ; 保存旧的 stack pointer
lar ar0, *+, ar1 ; 更新 frame pointe
sst #1, *+ ; 保存 st1
sst #0, *+ ; 保存 st0
mar *, ar1 ; ARP=1=stack pointer
mar *- ; SP 指向上一个最后的数据
lst #0, *- ; 恢复 st0
lst #1, *- ; 恢复 st1
//mar *- ; TI的代码中没有这一行,会不会导致 fp 指向 old stack pointer
lar ar0, *- ; 恢复 old FP
pshd * ; 恢复返回地址
ret 自己顶一下 自己再顶一下 自己再顶一下
页:
[1]