汇编语言调用c语言

Python013

汇编语言调用c语言,第1张

如果keil5的话,在汇编内调用c语言的变量,可以

IMPORT (变量名)

LDR r0, =(变量名) //获得该变量地址到r0

LDR r0,[r0] //将r0其值作为地址,获取其地址指向的值

这样c中变量的值就传递到r0了

首先你得搞清楚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。

有什么问题再向我提问