you have to do cmp sbb and das for each bit I think.
How about this:
mov bl, al
shr al, 4 ; get high order hex digit
xor ah, ah ; clear ah
add al, 48 ; add ascii code for '0'
cmp al, 58 ; check if ascii code is beyond '9'
cmc ; if it is beyond '9', carry will be clear, so...