#include <stdio.h>

int main(int argc, char **argv)
{
    char *from = "Hello World\n";
    int count;

    asm(
        "movl $-1, %%ecx \n\t"// Zeichenzaehler
        "movb $0, %%al \n\t"  // Suchzeichen '\0'
        "cld \n\t"            // Suchrichtung einstellen
        "repne ;  scasb \n\t" // Suche durchfuehren
        "not %%ecx \n\t"      // Zeichenzaehler korrigieren
        "dec %%ecx \n\t"
        : "=c" (count)        // Ergebnis soll in "count" stehen
        : "D" (from)          // Input muss fuer "scas" in RDI stehen
        : "al", "cc"          // Modifizierte Register
    );
    printf("strlen=%d\n", count );
    return 0;
}