Красивый хак для вывода AL именно в шестнадцатиричном виде, подсмотренный мной в далёком 1989-м году в SYMDEB.EXE и так мне в своё время понравившийся, что я его запомнил на всю жизнь. Вот слегка видоизменённый по сравнению с оригиналом из SYMDEB.EXE вариант (там использовались всякие дополнительные проверки, которые я тут выкинул). Прошу заметить -- ни одного сравнения, ни одного условного перехода!
AL_to_HEX proc near
push ax
shr al,4
call @@outNibble
pop ax
@@outNubble:
and al,0fh
add al,90h
daa
adc al,40h
daa
mov ah,0eh
int 10h
ret
AL_TO_HEX endp