Advertisement
matogens

ulepszona_wersja

May 14th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;nwd(a, b)
  2. ;{
  3.     ;if(b==0)
  4.         ;return a;
  5.     ;else
  6.         ;nwd(b, a%b);
  7. ;}
  8.  
  9.  
  10. default rel
  11. global main
  12. extern scanf
  13. extern printf
  14.  
  15. section .data
  16. format db "%d", 10,0
  17. formatld db "%ld", 10,0
  18.  
  19. section .text
  20.  
  21. main:
  22.    
  23.     push rbp
  24.     mov rbp, rsp
  25.  
  26.     mov rdi, 3084
  27.     mov rsi, 1424
  28.     call stos
  29.     call nwd
  30.  
  31.     mov rdi, format
  32.     mov rsi, rax
  33.     xor rax, rax
  34.     call printf wrt ..plt
  35.  
  36.     call stos
  37.     mov rsp, rbp
  38.     pop rbp
  39.     ret
  40.  
  41. nwd:
  42.     call stos
  43.     cmp rsi, 0
  44.     je _zwroc
  45.  
  46.     mov eax, edi
  47.     xor rdx, rdx   
  48.     div esi
  49.  
  50.     mov rdi, rsi
  51.     mov rsi, rdx
  52.     call nwd
  53.  
  54. _zwroc:
  55.  
  56.     mov rax, rdi
  57.     ret
  58.  
  59. stos:
  60.     push rdi
  61.     push rsi
  62.  
  63.     mov rdi, format
  64.     lea rsi, [rsp+24]
  65.     xor rax, rax
  66.     call printf wrt ..plt
  67.    
  68.     pop rsi
  69.     pop rdi
  70.  
  71.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement