extern io_get_dec
extern io_print_dec
extern io_print_char
section .bss
k resd 1
n resd 1
a resd 1
dig resd 1
cnt resd 1
d resd 1
section .text
global main
next:
mov ebx, 2011
div ebx
mov eax, edx
mov ecx, [cnt]
cmp ecx, [n]
je finish
imul eax, eax
;res = 0
;while d > 0
;dig = d / k
;res = res * k + dig
mov [d], eax
dog:
test [d], [d]
jz next
mov eax, [d]
mov ebx, [k]
div ebx
mov [dig], eax
mov eax, [res]
imul eax, [k]
add eax, [dig]
inc [cnt]
jmp dog
main:
call io_get_dec
mov [k], eax
call io_get_dec
mov [n], eax
call io_get_dec
mov [a], eax
mov [cnt], 0
call next
finish:
call io_get_dec
mov eax, eax
ret