With leading zero removal
OutBufDXasDecimal:
push eax
push ebx
push esi
sub esp, 24h
mov eax, edx ; value
mov ebx, 10 ; radix
mov esi, esp
.repeat
xor edx, edx
div ebx
mov [esi], dl
inc esi
.until eax==0
.repeat
dec esi
mov al, [esi]
add al, '0'
stosb
.until esi==esp
add esp, 24h
pop esi
pop ebx
pop eax
retn
;OutBufDXasDecimal ends
Without leading zero removal
dw2asc proc hnum:dword, strmem:ptr
;from electro_m23 at yahoo.com via Iczelion's Win32 Assembly Forum
push edi
mov edi,strmem
mov ecx,28
l1l1:
mov eax,hnum
shr eax,ecx
and al,0fh
cmp al,10
jb noneedforalpha
add al,'a'-'0'-10
noneedforalpha:
add al,'0'
sub ecx,4
mov [edi],al
inc edi
cmp ecx,-4
jg l1l1
mov eax,strmem
pop edi
ret