#include int strcmp(const char* s1, const char* s2) { int d0, d1; register int __res; __asm__ __volatile__( "1:\tlodsb\n\t" "scasb\n\t" "jne 2f\n\t" "testb %%al,%%al\n\t" "jne 1b\n\t" "xorl %%eax,%%eax\n\t" "jmp 3f\n" "2:\tsbbl %%eax,%%eax\n\t" "orb $1,%%al\n" "3:" : "=a"(__res), "=&S"(d0), "=&D"(d1) : "1"(s1), "2"(s2)); return __res; }