3619|2

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教C调用汇编的问题. [复制链接]

在C调用汇编时,往往在汇编入口处要保存与C兼容的FP,DP等.不知道这些参数是怎么设定的.有人知道相关的DATASHEET在哪儿下载吗?谢先.

最新回复

这个我研究了一下还有一个问题没有弄懂,LOCAL FRAME SIZE 的长度是怎么确定的呢? DATASHEET 上有各个AR的用法,但是唯独不提LOCAL FRAME SIZE的长度是如何确定的.   详情 回复 发表于 2008-2-8 07:37
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我举个C调用汇编的实例,请高手指点一下.谢先.

---------------------------------------------------------------------
; FFT Computation Routine
;----------------------------------------------------------------------
;====================================================================
; Function Local Frame
;====================================================================
;   |_______|
;   |_______|<- Stack Pointer                                   (FP+9) <---AR1
;   |_______|<- GLCB                                    (FP+8)
;        |_______|<- (T2)                                                                        (FP+7)
;   |_______|<- (T1)                                                                        (FP+6) <---AR5
;   |_______|<- BLC  (Butterfly loop counter)           (FP+5)
;   |_______|<- GLC  (Group loop counter)               (FP+4)
;   |_______|<- SLC  (Stage loop counter)               (FP+3)
;   |_______|<- TOST (Twiddle offset, for decimation)   (FP+2)
;   |_______|<- DOST (Data offset)                                                (FP+1)
;   |_______|<- ipcbptr                                                                       (FP)   
;   |_______|<- Old FP (AR0)                                (FP-1)
;   |_______|<- Context Save of AR7                                                (FP-2)
;   |_______|<- Context Save of AR6                     (FP-3)
;   |_______|<- Return Address of the Caller                        (FP-4)
;   |_______|<- FFTxxxx_handle                                                        (FP-5)
;                                                
;===================================================================

__FFT128C_calc_frs        .set        00009h        ; Local frame size for this routine       

FFT128C_calc:
                        POPD        *+                                 ; Store the Return Address in stack
                        SAR                AR6,*+          ; Entry On Save Register AR6
                        SAR                AR7,*+          ; Entry On Save Registe AR7
                        SAR                AR0,*+                     ; Store the Caller\'s Frame Pointer
                        SAR                AR1,*                 
                        LAR                AR5,*                        ; AR5=FP       
                        LAR         AR0,#__FFT128C_calc_frs               
                        LAR         AR0,*0+,AR7     ; Create Local frame
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

5555.都是些高手啊

这个我研究了一下还有一个问题没有弄懂,LOCAL FRAME SIZE 的长度是怎么确定的呢?

DATASHEET 上有各个AR的用法,但是唯独不提LOCAL FRAME SIZE的长度是如何确定的.

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表