.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