欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于linux 混合编程的简单有关问题

更新时间: 2014-01-05 03:14:31 责任编辑: Author_N1

 

关于linux 混合编程的简单问题
#include <stdio.h>
void my_strcpy(const char *src, char *dest)
{
char ch;
__asm
{
loop:
    ldrb ch, [src], #1
    strb ch, [dest], #1
    cmp ch, #0
    bne loop
}
}

int main()
{
char *a = "forget it and move on!";
char b[64];
my_strcpy(a, b);
printf("original: %s", a);
printf("copyed: %s", b);
return 0;
}

这段代码GCC 编译不过去,求哪位大侠指点,不胜感激!
--参考方法--
哦,明白了,把{改成(
--参考方法--
查下gcc的内联汇编吧,需要加双引号什么的。
--参考方法--
#include <stdio.h>

void my_strcpy(const char *src, char *dest)
{
    char ch;
    __asm__("loop:\t"
            "ldrb %2,[%0,#1]\n\t"
            "strb %2,[%1,#1]\n\t"
            "cmp %2, #0\n\t"
            "bne loop"::"r"(src), "r"(dest), "r"(ch));
}

int main()
{
    char *a = "forget it and move on!";
    char b[64];
    my_strcpy(a, b);
    printf("original: %s", a);
    printf("copyed: %s", b);
    return 0;
}


只保证编译通过,逻辑部分本来就有问题的,没改。
--参考方法--
引用:


这是怎么回事,是不是arm-linux-gcc  没安装好吗?

http://blog.sina.com.cn/s/blog_791a8d4d0100swd1.html
参考这个
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:31
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19965/
本文WWW.DOC100.NET DOC100.NET版权所有。