C语言调用汇编函数问题解答
问:在C:\ti\c5400\dsplib\54x_src目录下看到一些汇编的DSP的运算子程序,在C:\ti\c5400\dsplib\examples目录下看到一些C语言编的调用运算程序的例子,比如C:\ti\c5400\dsplib\examples\add,这个add文件里面有函数是 add(x,y,r,NX, SCALE),\ti\c5400\dsplib\54x_src里面也有个add,是不是用C语言调用的汇编语言的函数?如果是,那C语言函数的参数是怎么回事的,因为在汇编文件里面好象没有看到调用的参数啊?
答:C语言和汇编传递参数的方法一般有两种,公用内存块(包括寄存器)和堆栈的操作模式,Ti的DSP C和汇编中对无参数的函数使用了累加器来传递参数,而带参数的调用中使用了堆栈模式。 如果看C语言编译后的汇编代码可以清楚地看到。
http://purec.binghua.com/viewthread.php?tid=864&extra=page%3D1
评论