hbch609 发表于 2011-10-29 14:28

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   

hbch609 发表于 2011-10-31 09:09

自己顶一下

hbch609 发表于 2011-10-31 16:32

自己再顶一下

hbch609 发表于 2011-11-1 09:13

自己再顶一下
页: [1]
查看完整版本: TI的SPRA590中,关于栈的恢复的疑问