home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / EMXLIB8F.ZIP / EMX / LIB / STR / MEMSET.S < prev    next >
Encoding:
Text File  |  1993-01-02  |  838 b   |  39 lines

  1. / memset.s (emx+gcc) -- Copyright (c) 1990-1993 by Eberhard Mattes
  2.  
  3.         .globl _memset
  4.  
  5. / void *memset (void *s, int c, size_t n)
  6. /     {
  7. /     size_t i;
  8. /     for (i = 0; i < n; ++i)
  9. /         ((char *)s)[i] = (char)c;
  10. /     return (s);
  11. /     }
  12.  
  13. / assumes ds=es!
  14.  
  15.         .text
  16.  
  17.         .align  2, 0x90
  18.  
  19. _memset:
  20.         pushl   %edi
  21.         movl    2*4(%esp), %edi         / s
  22.         movl    3*4(%esp), %eax         / c
  23.         movl    4*4(%esp), %ecx         / n
  24.         movb    %al, %ah
  25.         movl    %eax, %edx
  26.         shll    $16, %eax
  27.         movw    %dx, %ax
  28.         shrl    $2, %ecx
  29.         rep
  30.         stosl
  31.         movl    4*4(%esp), %ecx         / n
  32.         andl    $3, %ecx
  33.         rep
  34.         stosb
  35.         movl    2*4(%esp), %eax         / s
  36.         popl    %edi
  37.         ret
  38.