2013-03-14 22:21:37 +00:00
|
|
|
/*
|
2007-03-15 10:58:19 +00:00
|
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS kernel
|
2015-09-19 13:50:57 +00:00
|
|
|
* FILE: lib/sdk/crt/mem/i386/memchr_asm.s
|
2007-03-15 10:58:19 +00:00
|
|
|
*/
|
|
|
|
|
2010-11-27 22:12:15 +00:00
|
|
|
#include <asm.inc>
|
|
|
|
#include <ks386.inc>
|
|
|
|
|
2007-03-15 10:58:19 +00:00
|
|
|
/*
|
|
|
|
* void* memchr(const void* s, int c, size_t n)
|
|
|
|
*/
|
|
|
|
|
2010-11-27 22:12:15 +00:00
|
|
|
PUBLIC _memchr
|
|
|
|
.code
|
2007-03-15 10:58:19 +00:00
|
|
|
|
2014-10-26 17:32:00 +00:00
|
|
|
FUNC _memchr
|
|
|
|
FPO 0, 3, 4, 1, 1, FRAME_NONFPO
|
2010-11-27 22:12:15 +00:00
|
|
|
push ebp
|
|
|
|
mov ebp, esp
|
|
|
|
push edi
|
|
|
|
mov edi, [ebp + 8]
|
|
|
|
mov eax, [ebp + 12]
|
|
|
|
mov ecx, [ebp + 16]
|
2007-03-15 10:58:19 +00:00
|
|
|
cld
|
2010-11-27 22:12:15 +00:00
|
|
|
jecxz .Lnotfound
|
|
|
|
repne scasb
|
|
|
|
je .Lfound
|
2008-08-15 18:24:11 +00:00
|
|
|
.Lnotfound:
|
2010-11-27 22:12:15 +00:00
|
|
|
mov edi, 1
|
2008-08-15 18:24:11 +00:00
|
|
|
.Lfound:
|
2010-11-27 22:12:15 +00:00
|
|
|
mov eax, edi
|
|
|
|
dec eax
|
|
|
|
pop edi
|
2007-03-15 10:58:19 +00:00
|
|
|
leave
|
|
|
|
ret
|
2014-10-26 17:32:00 +00:00
|
|
|
ENDFUNC
|
2010-11-27 22:12:15 +00:00
|
|
|
|
|
|
|
END
|