;nwd(a, b) ;{ ;if(b==0) ;return a; ;else ;nwd(b, a%b); ;} default rel global main extern scanf extern printf section .data format db "%d", 10,0 formatld db "%ld", 10,0 section .text main: push rbp mov rbp, rsp mov rdi, 3084 mov rsi, 1424 call stos call nwd mov rdi, format mov rsi, rax xor rax, rax call printf wrt ..plt call stos mov rsp, rbp pop rbp ret nwd: call stos cmp rsi, 0 je _zwroc mov eax, edi xor rdx, rdx div esi mov rdi, rsi mov rsi, rdx call nwd _zwroc: mov rax, rdi ret stos: push rdi push rsi mov rdi, format lea rsi, [rsp+24] xor rax, rax call printf wrt ..plt pop rsi pop rdi ret