Facebook
From xxx, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 232
  1. ;alg euklidesa
  2. default rel
  3. global main
  4.  
  5. extern printf
  6. extern scanf
  7.  
  8. section .data
  9. format db "%d",10,0
  10. format_stos db "%d",10,0
  11.  
  12. section .text
  13.  
  14. main:
  15.  
  16. push rbp
  17. mov rbp,rsp
  18.  
  19. mov edi,3084
  20. mov esi,1424
  21. call stos
  22.  
  23. call nwd
  24. mov rdi, format
  25. mov esi, eax
  26. xor rax,rax
  27. call printf wrt ..plt
  28.  
  29.  
  30. call stos
  31. mov rsp,rbp
  32. pop rbp
  33. ret          ;zwraca to co w raxie i konczy program
  34.  
  35.  
  36. nwd:
  37. call stos         ;kolejne wywolania rekurencyjne
  38. cmp esi,0
  39. je _zwroc_a
  40. mov eax,edi
  41. xor edx,edx
  42. div esi
  43. mov edi,esi
  44. mov esi,edx           ;reszta dzielenia w edx edi=a esi=b
  45. call nwd
  46.  
  47. _zwroc_a:
  48. mov eax,edi
  49. ret
  50.  
  51. stos:
  52. push rsi
  53. push rdi
  54. mov rdi, format_stos
  55. lea rsi,[rsp+24]
  56. xor rax,rax
  57. call printf wrt ..plt    ;wypisywanie adresu powrotu //rekurencja
  58. pop rdi
  59. pop rsi
  60. ret
  61.  
  62.