Чтобы преобразовать число в ASCII, вам нужно разделить число на 10 и использовать остаток в качестве результата. Затем добавьте ASCII '0' и сохраните полученную цифру. Затем повторите то же самое с частным, пока оно не достигнет нуля.
Однако это дает цифры в обратном порядке, начиная с наименее значащей цифры. Вы можете изменить порядок, например, используя стек. Вставьте каждую цифру в стек, затем вытолкните их и сохраните в строковом буфере.
Примерно так (не проверено):
.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