Rev 9666 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
9666 | turbocat | 1 | format ELF |
2 | |||
3 | section '.text' executable |
||
4 | include '../../../../../../proc32.inc' |
||
5 | |||
6 | public memmove |
||
7 | |||
8 | proc memmove c, to:dword,from:dword,count:dword |
||
9774 | turbocat | 9 | push esi |
10 | push edi |
||
11 | mov ecx,[count] |
||
12 | test ecx,ecx |
||
13 | jz .no_copy_block |
||
14 | mov esi,[from] |
||
15 | mov edi,[to] |
||
16 | cmp esi, edi |
||
17 | je .no_copy_block |
||
18 | jg .copy |
||
19 | add esi, ecx |
||
20 | add edi, ecx |
||
21 | dec esi |
||
22 | dec edi |
||
23 | std |
||
24 | .copy: |
||
25 | rep movsb |
||
26 | cld |
||
27 | .no_copy_block: |
||
28 | pop edi |
||
29 | pop esi |
||
30 | mov eax,[to] |
||
31 | ret |
||
9666 | turbocat | 32 | endp |