;============================
;1位16进制数到ASCII码转换
; { X+30H (0≤X≤9)
;Y= {
; { X+37H (0AH≤X≤0FH)
DATAS SEGMENT
Num db
ASCII db ?
DATAS ends CODES SEGMENT
ASSUME CS:CODES, DS:DATAS
START:
mov AX,DATAS
mov DS,AX mov al,Num ;将带操作的字符放入al中
and al,0FH ;求与 运算
add al,30H ;先加上30H (如果为数字 就转化为了数字对应的ASCII码) cmp al,''
jBE flag ;小于等于9对应的ASCII码跳转
add al,07H ;说面待转换的字符为字母则再加上07H转换为对应的字符的ASCII码
flag:
mov ASCII,al;将最终结果赋回ASCII中
mov ah,4ch
int 21H
CODES ends
end START