Subversion Repositories Kolibri OS

Rev

Rev 6410 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6410 Rev 6433
Line 5... Line 5...
5
 
5
 
6
public memcpy
6
public memcpy
Line 7... Line 7...
7
public memmove
7
public memmove
-
 
8
 
8
 
9
proc memcpy c, to:dword,from:dword,count:dword
9
proc memcpy c, to:dword,from:dword,count:dword
10
    push esi
10
 
11
    push edi
11
	mov ecx,[count]
12
    mov ecx,[count]
12
	test ecx,ecx
-
 
13
	jz no_copy_block
13
	test ecx,ecx
14
		
14
	jz no_copy_block
-
 
15
        mov esi,[from]
15
		mov esi,[from]
16
		mov edi,[to]
16
		mov edi,[to]
17
		cld
Line -... Line 18...
-
 
18
		rep movsb
-
 
19
no_copy_block:
-
 
20
 
17
		rep movsb
21
    pop edi
18
	no_copy_block:
22
    pop esi
Line 19... Line 23...
19
 
23
    mov eax, [to]
Line -... Line 24...
-
 
24
	ret
-
 
25
endp
20
	ret
26
 
21
endp
27
proc memmove c, to:dword,from:dword,count:dword
22
 
28
 
23
proc memmove c, to:dword,from:dword,count:dword
-
 
24
 
29
    push esi
25
	mov ecx,[count]
30
    push edi
-
 
31
	mov ecx,[count]
-
 
32
	test ecx,ecx
-
 
33
	jz no_copy_block_
-
 
34
		mov esi,[from]
-
 
35
		mov edi,[to]
-
 
36
		cmp esi, edi
-
 
37
		je no_copy_block_
-
 
38
		jg copy_
-
 
39
            add	esi, ecx
26
	test ecx,ecx
40
            add	edi, ecx
-
 
41
            dec	esi
27
	jz no_copy_block_
42
            dec	edi
Line -... Line 43...
-
 
43
            std
-
 
44
copy_:
-
 
45
		rep movsb
28
		
46
        cld
29
		mov esi,[from]
47
no_copy_block_:
30
		mov edi,[to]
48