.file "glib.c" .text .globl test .type test, @function test: ; int test(bool i) pushl %ebp ; sauve ebp (on le met sur la pile) movl %esp, %ebp ; on met esp, l'argument (ici bool i) dans ebp subl $8, %esp ; on alloue 8 bits de mémoire movl 8(%ebp), %eax ; on met ebp dans eax, comme ça on aura accès à un registre 1bite en prenant les 8 bits de poinds faible de ax movb %al, -4(%ebp) ; on met al, qui fait 1bit, dans ebp cmpb $1, -4(%ebp) ; on compare ebp avec TRUE jne .L2 ; If i != TRUE return 10 (goto L2) movl $11, -8(%ebp) ; If i == TRUE return 11 jmp .L4 ; goto L4 .L2: movl $10, -8(%ebp) ; If i != TRUE return 10 .L4: movl -8(%ebp), %eax ; on met le résultat dans eax, afin de définir le code de retour leave ; et on se casse :p ret .size test, .-test .ident "GCC: (GNU) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)" .section .note.GNU-stack,"",@progbits