功能:把1位16进制数转换为对应的ASCII码
入口参数:al的低4位为要转换的16进制数
出口参数:al含对应的ASCII码
htoasc proc
and al,0fh
add al,90h ------->从这里起后面的不懂,给解释下。
daa
adc al,40h
daa
ret
htoasc endp
16 进制 0~9:加上 48,即转换成为 ‘0’~‘9’。
16 进制 A~F:加上 55,即转换成为 ‘A’~‘F’。
为了实现转换,下面的程序,是最简单的了:
CMP AL, 10
JC J_48
ADD AL, 7
J_48: ADD AL, 48
RET
楼主给出的程序,也能实现转换。
但是,需要多理解一条指令(DAA),编程思路就太麻烦了。