repo.or.cz
/
neatlibc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
add termios.h
[neatlibc.git]
/
string.s
blob
cc9be13d82b05ed16bcdf581f12b1a1c4e32404d
1
format ELF
2
3
public memcpy
4
public memmove
5
memcpy
:
6
memmove
:
7
push esi
8
push edi
9
mov edi
, [
esp+
12
]
10
mov esi
, [
esp+
16
]
11
mov ecx
, [
esp+
20
]
12
mov eax
,
edi
13
cld
14
rep movsb
15
pop edi
16
pop esi
17
ret
18
19
public memset
20
memset
:
21
push edi
22
mov edi
, [
esp+
8
]
23
mov eax
, [
esp+
12
]
24
mov ecx
, [
esp+
16
]
25
mov edx
,
edi
26
cld
27
rep stosb
28
pop edi
29
mov eax
,
edx
30
ret
31
32
public memchr
33
memchr
:
34
mov eax
, [
esp+
8
]
35
mov ecx
, [
esp+
12
]
36
push edi
37
mov edi
, [
esp+
8
]
38
cld
39
repnz scasb
40
jne
.failed
41
mov eax
,
edi
42
dec
eax
43
jmp
.ret
44
.failed:
45
xor
eax
,
eax
46
.ret:
47
pop edi
48
ret
49
50
public strlen
51
strlen
:
52
push edi
53
mov edi
, [
esp+
8
]
54
xor
eax
,
eax
55
mov ecx
, -
1
56
cld
57
repnz scasb
58
mov eax
,
ecx
59
not
eax
60
dec
eax
61
pop edi
62
ret
63
64
public strchr
65
strchr
:
66
mov ecx
, [
esp+
4
]
67
mov edx
, [
esp+
8
]
68
.loop:
69
mov al
, [
ecx
]
70
cmp
al
,
dl
71
jz
.done
72
inc ecx
73
test al
,
al
74
jnz
.loop
75
xor
ecx
,
ecx
76
.done:
77
mov eax
,
ecx
78
ret
79
80
public strcmp
81
strcmp
:
82
mov ecx
, [
esp+
4
]
83
mov edx
, [
esp+
8
]
84
xor
eax
,
eax
85
.loop:
86
mov al
, [
ecx
]
87
cmp
al
, [
edx
]
88
jnz
.ret
89
inc edx
90
inc ecx
91
test al
,
al
92
jnz
.loop
93
ret
94
.ret:
95
movzx ecx
,
byte
[
edx
]
96
sub
eax
,
ecx
97
ret
98
99
public strcpy
100
strcpy
:
101
push edi
102
push esi
103
mov edx
, [
esp+
12
]
104
mov esi
, [
esp+
16
]
105
mov edi
,
edx
106
cld
107
.loop:
108
lodsb
109
stosb
110
or
al
,
al
111
jnz
.loop
112
pop edi
113
pop esi
114
mov eax
,
edx
115
ret