首页 > 其他 > 详细

汇编写下strcpy

时间:2014-10-28 21:21:40      阅读:287      评论:0      收藏:0      [点我收藏+]
  1 #include <stdio.h>
  2 
  3 int main()
  4 {
  5         char *source = "hello world\n";
  6         char dest[1024] = {0};
  7         char *p = dest;
  8         char c = \0;
  9 #if 0
 10 loop: 
 11         if(*(source + i) == \0){
 12                 *(dest + i) = \0;
 13                 goto exit;
 14         }
 15         *(dest + i) = *(source + i);
 16         i++;
 17         goto loop;
 18 exit:
 19 #else
 20         __asm__ __volatile__(
 21                 "ldr r2, [%2]\n"
 22                 "mov r0, #0\n"
 23                 "loop:\n"
 24                 "ldr r1, [%0, r0]\n"
 25                 "cmp r1, r2\n"
 26                 "beq exit\n"
 27                 "str r1, [%1, r0]\n"
 28                 "add r0, r0, #1\n"
 29                 "b loop\n"
 30                 "exit:\n"
 31                 :
 32                 :"r" (source), "r" (dest), "r" (&c)
 33                 :"r0", "r1", "r2", "memory"
 34         );
 35 #endif
 36 
 37         printf("%s\n", p);
 38 }

注意:最后一行要写上保护(r1,r2,r3)否则会段错误。

汇编写下strcpy

原文:http://www.cnblogs.com/luoxiang/p/4057629.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!