首页 > 代码库 > 汇编写下strcpy
汇编写下strcpy
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。