1 #include <stdio.h>
2
3 int main()
4 {
5 char *source = "hello world
";
6 char dest[1024] = {0};
7 char *p = dest;
8 char c = ' ';
9 #if 0
10 loop:
11 if(*(source + i) == ' '){
12 *(dest + i) = ' ';
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]
"
22 "mov r0, #0
"
23 "loop:
"
24 "ldr r1, [%0, r0]
"
25 "cmp r1, r2
"
26 "beq exit
"
27 "str r1, [%1, r0]
"
28 "add r0, r0, #1
"
29 "b loop
"
30 "exit:
"
31 :
32 :"r" (source), "r" (dest), "r" (&c)
33 :"r0", "r1", "r2", "memory"
34 );
35 #endif
36
37 printf("%s
", p);
38 }
注意:最后一行要写上保护(r1,r2,r3)否则会段错误。