; eax, ecx, edx f: push ebp mov ebp, esp sub esp, 0 push ebx mov eax, [ebp+8] ; [ebp+8] : fv. első paramétere mov eax, [ebp+12] ; [ebp+12] : fv. második paramétere mov eax, [ebp+16] ; [ebp+16] : fv. harmadik paramétere pop ebx mov esp, ebp ; kilépő kódrészlet pop ebp ret f(1, 2, 3) push dword 3 push dword 2 push dword 1 call f add esp, 12 ; (valami) (par1) (par2) (par3) ; (ebp) xxxx xxxx xxxx ; esp ; ebp f: push ebp mov ebp, esp sub esp, 0 cmp dword [ebp+8], 1 ; n jne .nem_egy mov eax, 1 ; visszatérési érték: eax jmp .tovabb .nem_egy: mov eax, [ebp+8] ; n dec eax ; n-1 push eax call f .vissza: add esp, 4 ; f(n-1) ; (.vissza) (par1) xxxxx xxxxx ; esp .tovabb: ; (vissza) (par1) (par2) (par3) ; (ebp) xxxx xxxx xxxx ; esp mov esp, ebp ; kilépő kódrészlet pop ebp ret mov eax, 1 push eax pop ebx ; alprogramhívás futási idejű veremmel ; f(1, "abc") ; f(1) = 1 ; f(n) = f(n - 1) push dword 15 call f add esp, 4 ; n n-1 n-2 ; kódrészlet