home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / NEWS / 677 / TSRTOOLS / MEMSWAP.C < prev    next >
Text File  |  1993-10-07  |  467b  |  29 lines

  1. /*
  2.     memswap.C
  3.  
  4.     Copyright (C) 1993, Geoff Friesen B.Sc.
  5.     All rights reserved.
  6. */
  7.  
  8. #define    INCL_MEMSWAP
  9.  
  10. void memswap (void *addr1, void *addr2, size_t n)
  11. {
  12.    _SI = (unsigned) addr1;
  13.    _DI = (unsigned) addr2;
  14.    _CX = (unsigned) n;
  15.    asm jcxz memswap2;        /* error check n for zero */
  16.  
  17. memswap1:
  18.  
  19.    asm mov al, [si]
  20.    asm mov ah, [di]
  21.    asm mov [si], ah
  22.    asm mov [di], al
  23.    asm inc si
  24.    asm inc di
  25.    asm loop memswap1
  26.  
  27. memswap2:
  28.  
  29. }