文件strtest.c
1 #include <stdio.h>
2 extern void strcopy(char *d, const char *s);
3 int main()
4 { const char *srcstr = first string - source;
5 char dststr[] = second string - destination;
6 /* dststr is an array since we're going to change it */
7
8 printf(before copying:\n);
9 printf( '%s'\n '%s'\n,srcstr,dststr);
10 strcopy(dststr,srcstr);
11 printf(after copying:\n);
12 printf( '%s'\n '%s'\n,srcstr,dststr);
13 return 0;
14 }
文件scopy.s
1 area scopy, code, readonly
2 export strcopy
3 strcopy
4 ; r0 points to destination string
5 ; r1 points to source string
6 ldrb r2, [r1],#1 ; load byte and update address
7 strb r2, [r0],#1 ; store byte and update address;
8 cmp r2, #0 ; check for zero terminator
9 bne strcopy ; keep going if not
10 mov pc,lr ; return
11 end