%ifdef PRINTSTEPS segment .data prnarg db "eax: %i, edx: %i, ecx: %i",10,0 %endif segment .text global fibi extern printf fibi: push ebp mov ebp, esp mov ecx, [ebp+8] mov eax, 1 mov edx, 1 loop: %ifdef PRINTSTEPS pusha push ecx push edx push eax push prnarg call printf add esp, 16 popa %endif add eax, edx sub edx, eax neg edx dec ecx jnz loop mov esp, ebp pop ebp ret