To convert number into ASCII, you need to divide the number by 10 and use the remainder as result. Then add ASCII '0' and store the resulting digit. Then repeat the same with the quotient until it reaches zero.
However, this gives the digits in reverse order, starting from the least significant digit. You can reverse the order for example by using stack. Push each digit into stack, then pop them and store into a string buffer.
Something like this (not tested):
.DATA
strResult db 16 dup (0) ; string buffer to store results
.CODE
mov eax, number ; number to be converted
mov ecx, 10 ; divisor
xor bx, bx ; count digits
divide:
xor edx, edx ; high part = 0
div ecx ; eax = edx:eax/ecx, edx = remainder
push dx ; DL is a digit in range [0..9]
inc bx ; count digits
test eax, eax ; EAX is 0?
jnz divide ; no, continue
; POP digits from stack in reverse order
mov cx, bx ; number of digits
lea si, strResult ; DS:SI points to string buffer
next_digit:
pop ax
add al, '0' ; convert to ASCII
mov [si], al ; write it to the buffer
inc si
loop next_digit