extern io_get_dec
extern io_print_dec
extern io_print_char
section .bss
n resd 1
k read 1
cnt resd 1
k0 resd 1 ;k0 - сколько 0 в данном числе
ans resd 1
arr resd 1000
transformation:
push ebp
mov ebp, esp
mov esi, [ebp + 8]
mov eax, [esi]
del:
cmp eax, 0
je check
mov ebx, 2
xor edx, edx
div ebx
cmp edx, 0
jne del
inc dword [k0], 1
jmp del
check:
mov ecx, k0
cmp ecx, k
jne next
inc dword [ans], 1
next:
add esi, 4
mov eax, [esi]
jmp del
pop ebp
ret
section .text
global main
main:
call io_get_dec
mov [n], eax
mov dword [cnt], 0
get:
call io_get_dec
push eax
inc dword [cnt]
mov ecx, [cnt]
cmp ecx, [n]
;если не равны
jne get
finish:
call io_get_dec
mov [k], eax
call transformation
mov eax, ans
call io_print_dec
ret