Logo GNU
Kodovani Předchozí Následující Obsah

31. Testovací smyčka z GCC


        .file   "example.c"
gcc2_compiled.:
___gnu_compiled_c:
.text
LC0:
        .ascii "%i\12\0"
        .align 2
.globl _main
_main:
        call ___main            #inicializace programu..
        movl $1,%eax            #Ted načte proměnné do registrů
        xorl %ecx,%ecx
        movl $9998,%edx         #Cyklus je obráceně..
        .align 2,0x90           #Tělo je srovnané, aby se lépe vešlo do cache
L11:
        addl %ecx,%eax          #A jenom dvě instrukce..
        leal (%eax,%eax),%ecx   #Takové použití lea jsem poprvé viděl až u GCC
        decl %edx               #Test smyčky je na konci - kompilátor věděl, že
        jns L11                 #to poběží vícekrát
        pushl %eax              #Ještě zavolat printf..
        pushl $LC0
        call _printf
        addl $8,%esp            #A zbaví se zásobníku
        ret


Předchozí Následující Obsah

Dotazy a připomínky ohledně stránky posílejte na hubicka@paru.cas.cz