主题:关于Linux下的嵌入汇编的小问题
我在Linux环境下写测试C的嵌入汇编,有一个令我非常头疼的问题,希望有高手帮忙看一下.
copy.c
源代码如下:
#include<string.h>
#define copy(from,to,length) \
_asm_("cld;rep;movsb"::"S"(from),"D"(to),"c"(length):"esi","ecx","edi")
int main(void)
{
char m1[20]="hello,world";
char m2[20];
copy(m1,m2,strlen(m1));
printf("%s\n",m2);
return 0;
}
经过 gcc copy.c 编译
报告错误: parse error before ":" token ( 是指copy(m1,m2,strlen(m1));)
我不知道这句宏汇编代码有什么错误!!!
[em10][em10][em10][em10][em10]
copy.c
源代码如下:
#include<string.h>
#define copy(from,to,length) \
_asm_("cld;rep;movsb"::"S"(from),"D"(to),"c"(length):"esi","ecx","edi")
int main(void)
{
char m1[20]="hello,world";
char m2[20];
copy(m1,m2,strlen(m1));
printf("%s\n",m2);
return 0;
}
经过 gcc copy.c 编译
报告错误: parse error before ":" token ( 是指copy(m1,m2,strlen(m1));)
我不知道这句宏汇编代码有什么错误!!!
[em10][em10][em10][em10][em10]