each 4 bits (a nyble) makes up a digit of hexadecimal.
each byte (2 nybles) has 2 digits.
How I did it for speed was to have a string with value of '0123456789ABCDEF'
say al holds value I want to convert:
mov ebx,OFFSET HEXstring
or eax,0Fh
add ebx,eax
mov al,[ebx]
al will hold ascii charactor!
to do high digit aswel:
push ax
{do low charactor}
pop ax
shr al,4
{do low charactor but returns high char}
this should help you but i didnt have the time to go deep on this right now, if it doesnt help reply to this.
"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"