extern io_get_udec, io_print_string, io_print_udec
section .data
x dd 0
n dd 0
K dd 0
msg1 db `NO\n`,0
msg2 db `YES\n`,0
section .text
global main
reverse:
push ebp
mov ebp, esp
push ebx
mov eax, [ebp + 8]
mov dword [K], 0
mov ebx, 10
.L:
cmp eax, 0
je .END
mov edx, 0
div ebx
mov ecx, [K]
imul ecx, ebx
mov dword [K], ecx
add dword [K], edx
jmp .L
.END:
mov eax, [K]
mov dword [K], 0
pop ebx
leave
ret
main:
call io_get_udec
mov [x],eax
call io_get_udec
mov [n],eax
mov eax,[x]
mov ecx,0
.L:
cmp ecx,[n]
jge .END
push ecx
push eax
call reverse
add esp, 4
pop ecx
add [x],eax
mov eax,[x]
inc ecx
jmp .L
.END:
mov ebx,eax
push ecx
push eax
call reverse
add esp, 4
pop ecx
cmp eax, ebx
je THEN
mov eax,msg1
call io_print_string
jmp END
THEN:
mov eax,msg2
call io_print_string
mov eax,[x]
call io_print_udec
END:
xor eax,eax
ret