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
res resd 1
section .text
global main
next:
mov eax, [res]
mov ebx, 2011
mov edx, 0
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
mov [res], 0
dog:
test eax, eax
jz next
mov ebx, [k]
mov edx, 0
div ebx
mov [dig], edx
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
mov [res], eax
call next
finish:
call io_print_dec
mov eax, eax
ret