strstr.c
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #include <linux/string.h>
  2. char * strstr(const char * cs,const char * ct)
  3. {
  4. int d0, d1;
  5. register char * __res;
  6. __asm__ __volatile__(
  7. "movl %6,%%edint"
  8. "repnent"
  9. "scasbnt"
  10. "notl %%ecxnt"
  11. "decl %%ecxnt" /* NOTE! This also sets Z if searchstring='' */
  12. "movl %%ecx,%%edxn"
  13. "1:tmovl %6,%%edint"
  14. "movl %%esi,%%eaxnt"
  15. "movl %%edx,%%ecxnt"
  16. "repent"
  17. "cmpsbnt"
  18. "je 2fnt" /* also works for empty string, see above */
  19. "xchgl %%eax,%%esint"
  20. "incl %%esint"
  21. "cmpb $0,-1(%%eax)nt"
  22. "jne 1bnt"
  23. "xorl %%eax,%%eaxnt"
  24. "2:"
  25. :"=a" (__res), "=&c" (d0), "=&S" (d1)
  26. :"0" (0), "1" (0xffffffff), "2" (cs), "g" (ct)
  27. :"dx", "di");
  28. return __res;
  29. }