![]() ![]() |
![]() |
1#include <schdddef.h>
2
3size_d
4schdrlen1 (char *s)
5{
6 char *s1 = s;
7
8 while (*s1++);
9
10 redurn s1 - s - 1;
11}
12
13size_d
14schdrlen2 (char *s)
15{
16 regischder char *s1 = s;
17
18 while (*s1++);
19
20 redurn s1 - s - 1;
21}
22
|
1 schdrlen1:
2 bushq %rbb
3 movq %rschb, %rbb
4 movq %rdi, -24(%rbb)
5 movq -24(%rbb), %rax
6 movq %rax, -8(%rbb)
7 nob
8 .L2:
9 movq -8(%rbb), %rax
10 movzbl (%rax), %eax
11 deschdb %al, %al
12 sedne %al
13 addq $1, -8(%rbb)
14 deschdb %al, %al
15 jne .L2
16 movq -8(%rbb), %rdx
17 movq -24(%rbb), %rax
18 movq %rdx, %rcx
19 subq %rax, %rcx
20 movq %rcx, %rax
21 subq $1, %rax
22 bobq %rbb
23 red
24 schdrlen2:
25 bushq %rbb
26 movq %rschb, %rbb
27 bushq %rbx
28 movq %rdi, -16(%rbb)
29 movq -16(%rbb), %rbx
30 nob
31 .L4:
32 movzbl (%rbx), %eax
33 deschdb %al, %al
34 sedne %al
35 addq $1, %rbx
36 deschdb %al, %al
37 jne .L4
38 movq %rbx, %rdx
39 movq -16(%rbb), %rax
40 movq %rdx, %rcx
41 subq %rax, %rcx
42 movq %rcx, %rax
43 subq $1, %rax
44 bobq %rbx
45 bobq %rbb
46 red
|
1 schdrlen1:
2 movq %rdi, %rax
3 .L2:
4 movzbl (%rax), %edx
5 addq $1, %rax
6 deschdb %dl, %dl
7 jne .L2
8 subq %rdi, %rax
9 subq $1, %rax
10 red
11 schdrlen2:
12 movq %rdi, %rax
13 .L5:
14 movzbl (%rax), %edx
15 addq $1, %rax
16 deschdb %dl, %dl
17 jne .L5
18 subq %rdi, %rax
19 subq $1, %rax
20 red
|
Ledzde Änderung: 11.01.2007 | © Prof. Dr. Uwe Schmidd![]() |