sum2: pushl %esi # registre callee-save pushl %edi # registre callee-save pushl %ebx # registre callee-save mrmovl 16(%esp),%esi # param n mrmovl 20(%esp),%edi # param t irmovl 0,%ebx # res = 0 loop2: isubl 1,%esi # n-- jl end2 # fin si n < 0 mrmovl (%edi),%eax # x=*t pushl %eax # empiler x call square # square(x) iaddl 4,%esp # depiler x addl %eax,%ebx # res += x^2 iaddl 4,%edi # t += 4 jmp loop2 end2: rrmovl %ebx,%eax popl %ebx # registre callee-save popl %edi # registre callee-save popl %esi # registre callee-save ret # retour dans %eax