导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→谁能告诉我如何在keil for arm下用c调用汇编代码?[zhangyi65536]

 *第36496篇: 谁能告诉我如何在keil for arm下用c调用汇编代码?千恩万谢!

  
楼 主:zhangyi65536 2005年12月16日10:39
 谁能告诉我如何在keil for arm下用c调用汇编代码?千恩万谢!

/*strcopy.c*/
#include    <stdio.h>  

extern  void strcopy(char *d,const char * s);

int main(void)
{const char * srcstr="first string" ;
char dststr[]="second string-destination";
printf("before:\n");
printf("  '%s'\n  '%s'\n",srcstr,dststr);
strcopy(dststr,srcstr);
printf("after coping:\n");
printf("  '%s'\n   '%s'\n",srcstr,dststr);
return(0);

}

/*strcopy.s*/

   area      scopy,code,readonly
   export    strcopy

strcopy
     ldrb r0,[r1],#1            
     strb r2,[r0],#1
     cmp  r2,#0
     bne  strcopy
     mov  pc,lr
     end
为什么我用keil for arm 编译以上代码不能通过,编译器说export strcopy语法错误,谁能告诉我,跪谢。

  
2楼:戈卫东 2005年12月17日03:38
 它不支持...
它不支持export, 用public吧.
  
3楼:b52flying 2005年12月20日04:21
 试一下。
如果是我,我就会把被调用的函数放到另一个文件里:
/*strcopy*/
void strcopy(char str[],char str[])
{
/*如果愿意,你可以用C把函数大致写一下*/
}

编译后你再用ASM把函数内容换掉,就可以了。

  
4楼:戈卫东 2005年12月23日04:37
 名称修饰的问题....
c 函数名 在汇编语言源程序中的名字是另一个样子,看keil的文档吧....

如果用汇编写你的程序,应当用"strcopy?A"或"strcopy?T"这样的名字。这是keil的规则。


>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:请教高手如何使用跳线实现,共阴共阳数码管的转换使用,51

[下一篇主题]:求助:msp430f149  与 pcf8563