.pos 0 irmovl stack,%esp # initialisation du pointeur de pile (stack pointer) jmp main f: mrmovl 4(%esp),%eax # on récupère le premier paramètre (a) mrmovl 8(%esp),%ecx # on récupère le second paramètre (b) addl %ecx,%eax # variable de retour dans %eax ret main: mrmovl b,%eax # on empile les paramètres en sens inverse pushl %eax mrmovl a,%eax pushl %eax call f # appel de la fonction f() aret: popl %ecx # on dépile les 2 paramètres avec popl popl %ecx # ou iaddl 8,%esp rmmovl %eax,res halt .pos 0x100 a: .long 1 b: .long 2 res: .long 0 .pos 0x200 # adresse de base de la pile stack: