Guest User

Untitled

a guest
Mar 21st, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. extern printf
  2. global main
  3. section .data
  4. format db "%d ", 10, 0
  5. section .text
  6.  
  7. call main
  8. ret
  9.  
  10. factorial:
  11. push ebp
  12. mov ebp, esp
  13.  
  14. cmp dword[ebp + 8], 0;n == 0
  15. jne recursive_return
  16. mov eax, 1
  17. jmp epilogue
  18.  
  19. recursive_return:
  20. mov eax, [ebp + 8]
  21. sub eax, 1;n - 1
  22. push eax
  23. call factorial
  24. add esp, 4
  25. mov ebx, eax
  26. mov eax, [ebp + 8];n
  27. cdq; edx:eax
  28. imul eax, ebx;n * factorial(n - 1)
  29.  
  30. epilogue:
  31. leave
  32. ret
  33.  
  34. main:
  35. push ebp
  36. mov ebp, esp
  37. push 7;n argument
  38. call factorial
  39. add esp, 4
  40. push eax
  41. push format
  42. call printf
  43. add esp, 8
  44. leave
  45. mov eax, 0
  46. ret
Add Comment
Please, Sign In to add comment