你的位置: 首页 > 通信技术 > 嵌入式系统

C程序调用汇编程序

2016-10-26 09:33:25 | 人围观 | 评论:

    文件strtest.c
    1 #include <stdio.h>
    2 extern void strcopy(char *d, const char *s);
    3 int main()
    4 { const char *srcstr = "First string - source";
    5 char dststr[] = "Second string - destination";
    6 /* dststr is an array since we're going to change it */
    7
    8 printf("Before copying:/n");
    9 printf(" '%s'/n '%s'/n",srcstr,dststr);
    10 strcopy(dststr,srcstr);
    11 printf("After copying:/n");
    12 printf(" '%s'/n '%s'/n",srcstr,dststr);
    13 return 0;
    14 }
    文件scopy.s
    1 AREA SCopy, CODE, READONLY
    2 EXPORT strcopy
    3 strcopy
    4 ; r0 points to destination string
    5 ; r1 points to source string
    6 LDRB r2, [r1],#1 ; load byte and update address
    7 STRB r2, [r0],#1 ; store byte and update address;
    8 CMP r2, #0 ; check for zero terminator
    9 BNE strcopy ; keep going if not
    10 MOV pc,lr ; Return
    11 END




标签:

相关内容推荐: