BITS 32 GLOBAL fact SECTION .text fact: mov eax, [esp+4] ; n в eax cmp eax, 1 je ret1 ; 1 ! = 1 push ecx ; save used ecx dec eax ; eax = n-1 push eax call fact ; в eax (n-1)! pop ecx ; ecx = n inc ecx mul ecx ; eax *= ecx pop ecx ; restore used ecx ret1: ret