1,无论是Keil工具还是ADS工具,都有一段入口汇编代码,一般叫start.s。这取决于你这个程序的Project设置,自己去找找。
2,你一定要找到这个入口汇编代码的文件,然后把你的汇编函数添加到末尾。
3,入口汇编代码中要找到跳转到C程序入口的那条跳转语句。C程序的入口调用一般在ADS里是: B __main 这样的一句汇编。把这句改成B callsum5。
首先你得搞清楚s32 function(u32 VirtualAddr)编译后叫什么。一般来说可能会叫_function。传递参数很简单,如果ax里放的就是参数,那么push ax,然后再调用就可以。
返回值如果我没有记错的话应该在AX里。如果返回值太长,就会放到堆栈里。
你想搞清楚如果跨语言编程,最好彻底明白C语言的机制。也就是写一段函数调用程序比如下面的
main()
{ int i;}
fu(int i)
{in j}
然后编译成汇编语言,好好研究一下。或者再复杂一点。请参考http://zhidao.baidu.com/question/348586073.html。
有什么问题再向我提问
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)