通过ARM汇编调用C语言函数实现累加

C语言中定义实现一个累加的函数,参数是累加的最大值,从1加到此值。下面是代码:

汇编代码:其中注意开始的参数的定义要紧靠前面,负责无法读出,其中要将C语言函数导入:IMPORT+函数名,并将你定义的汇编开始部分定义出去:EXPORT+开始函数名

STACK_TOP EQU 0x40002000 
N EQU 100 
    PRESERVE8 
    AREA HOMEWORK,CODE,READONLY 
    IMPORT add 
    EXPORT START 
    ENTRY 
START 
    LDR R13,=STACK_TOP 
    MOV R0,#N 
    BL add 
    LDR R3,=RESULT 
    STR R0,[R3] 
STOP 
    B STOP 
     
    AREA MYDATA,DATA,READWRITE 
RESULT 
    DCD 0 
 
    END 

C语言代码:这个大家都看得懂,无须解释。

int add(int num) 
{  int result=0; 
    int i; 
    for(i=1;i<=num;i++) 
    { 
        result=result+i; 
    } 
    return result; 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1b586f1e2d06c833473a46c0392e69a2.html