Rev 145 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 145 | Rev 647 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | format ELF |
1 | format ELF |
- | 2 | ||
2 | section '.text' executable |
3 | section '.text' executable |
- | 4 | include 'proc32.inc' |
|
- | 5 | ||
3 | public memcpy |
6 | public memcpy |
4 | public memmove |
7 | public memmove |
- | 8 | ||
- | 9 | proc memcpy stdcall, to:dword,from:dword,count:dword |
|
5 | memcpy: |
10 | |
6 | memmove: |
11 | mov ecx,[count] |
7 | push esi edi |
12 | test ecx,ecx |
8 | mov edi,[esp+12] |
13 | jz no_copy_block |
- | 14 | ||
9 | mov esi,[esp+16] |
15 | mov esi,[from] |
10 | mov ecx,[esp+20] |
16 | mov edi,[to] |
11 | jecxz .no_copy |
- | |
12 | cld |
- | |
13 | rep movsb |
17 | rep movsb |
14 | .no_copy: |
18 | no_copy_block: |
15 | pop edi esi |
19 | |
16 | ret |
20 | ret |
17 | 21 | endp |
|
- | 22 | ||
- | 23 | proc memmove stdcall, to:dword,from:dword,count:dword |
|
- | 24 | ||
- | 25 | mov ecx,[count] |
|
- | 26 | test ecx,ecx |
|
- | 27 | jz no_copy_block_ |
|
- | 28 | ||
- | 29 | mov esi,[from] |
|
- | 30 | mov edi,[to] |
|
- | 31 | rep movsb |
|
- | 32 | no_copy_block_: |
|
- | 33 | ||
- | 34 | ret |
|
- | 35 | endp |
|
- | 36 | ||
18 | 37 |