strstr.c

来自「内核linux2.4.20,可跟rtlinux3.2打补丁 组成实时linux系」· C语言 代码 · 共 32 行

C
32
字号
#include <linux/string.h>char * strstr(const char * cs,const char * ct){int	d0, d1;register char * __res;__asm__ __volatile__(	"movl %6,%%edi\n\t"	"repne\n\t"	"scasb\n\t"	"notl %%ecx\n\t"	"decl %%ecx\n\t"	/* NOTE! This also sets Z if searchstring='' */	"movl %%ecx,%%edx\n"	"1:\tmovl %6,%%edi\n\t"	"movl %%esi,%%eax\n\t"	"movl %%edx,%%ecx\n\t"	"repe\n\t"	"cmpsb\n\t"	"je 2f\n\t"		/* also works for empty string, see above */	"xchgl %%eax,%%esi\n\t"	"incl %%esi\n\t"	"cmpb $0,-1(%%eax)\n\t"	"jne 1b\n\t"	"xorl %%eax,%%eax\n\t"	"2:"	:"=a" (__res), "=&c" (d0), "=&S" (d1)	:"0" (0), "1" (0xffffffff), "2" (cs), "g" (ct)	:"dx", "di");return __res;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?