微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 请教C调用汇编的问题.

请教C调用汇编的问题.

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

我举个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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top