global main extern printf section .text func_f mov eax, [esp+4] cmp eax, 0 jz f_ret dec eax push eax call func_f mov [esp+0], eax call func_m add esp, 4 mov ebx, [esp+4] sub ebx, eax mov eax, ebx ret f_ret mov eax, 1 ret func_m mov eax, [esp+4] cmp eax, 0 jz m_ret dec eax push eax call func_m mov [esp+0], eax call func_f add esp, 4 mov ebx, [esp+4] sub ebx, eax mov eax, ebx ret m_ret xor eax, eax ret main mov edx, func_f call output_res mov edx, func_m call output_res ret output_res xor ecx, ecx loop0 push ecx call edx push edx push eax push form call printf add esp, 8 pop edx pop ecx inc ecx cmp ecx, 20 jnz loop0 push newline call printf add esp, 4 ret section .rodata form db '%d ',0 newline db 10,0 end