|
|
1#include <stdlib.h>
2
3char *
4strcpy1 (char *d, char *s)
5{
6 size_t i;
7
8 for (i = 0; s[i] != 0; ++i)
9 {
10 d[i] = s[i];
11 }
12 d[i] = 0;
13
14 return d;
15}
|
1 strcpy1:
2 pushl %ebp
3 movl %esp, %ebp
4 pushl %ebx
5 movl 8(%ebp), %ebx
6 movl 12(%ebp), %ecx
7 movl $0, %edx
8 cmpb $0, (%ecx)
9 je .L8
10 .L6:
11 movb (%edx,%ecx), %al
12 movb %al, (%edx,%ebx)
13 incl %edx
14 cmpb $0, (%edx,%ecx)
15 jne .L6
16 .L8:
17 movb $0, (%edx,%ebx)
18 movl %ebx, %eax
19 popl %ebx
20 popl %ebp
21 ret
|
|
1#include <stdlib.h>
2
3char *
4strcpy2 (char *d, char *s)
5{
6 char *d1 = d;
7
8 while ((*d1++ = *s++));
9
10 return d;
11}
|
1 strcpy2:
2 movl $0, %edx
3 .L2:
4 movzbl (%rsi,%rdx), %eax
5 movb %al, (%rdi,%rdx)
6 addq $1, %rdx
7 testb %al, %al
8 jne .L2
9 movq %rdi, %rax
10 ret
|
| Letzte Änderung: 12.11.2009 | © Prof. Dr. Uwe Schmidt |