strmov.c
上传用户:jmzj888
上传日期:2007-01-02
资源大小:220k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.   strmov(dst, src) moves all the  characters  of  src  (including  the
  3.   closing NUL) to dst, and returns a pointer to the new closing NUL in
  4.   dst.  The similar UNIX routine strcpy returns the old value of dst,
  5.   which I have never found useful.  strmov(strmov(dst,a),b) moves a//b
  6.   into dst, which seems useful.
  7. */
  8. #include <global.h>
  9. #include "m_string.h"
  10. #ifdef BAD_STRING_COMPILER
  11. #undef strmov
  12. #define strmov strmov_overlapp
  13. #endif
  14. #if !defined(MC68000) && !defined(DS90)
  15. char *strmov(dst, src)
  16. register char *dst;
  17. register const char *src;
  18. {
  19.   while (*dst++ = *src++) ;
  20.   return dst-1;
  21. }
  22. #else
  23. char *strmov(dst, src)
  24.      char *dst, *src;
  25. {
  26.   asm(" movl 4(a7),a1 ");
  27.   asm(" movl 8(a7),a0 ");
  28.   asm(".L4: movb (a0)+,(a1)+ ");
  29.   asm(" jne .L4 ");
  30.   asm(" movl a1,d0 ");
  31.   asm(" subql #1,d0 ");
  32. }
  33. #endif