;============================ ;1位16進制數到ASCII碼轉換 ; { X+30H (0≤X≤9) ;Y= { ; { X+37H (0AH≤X≤0FH) DATAS SEGMENT Num db 9 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,'9' jBE flag ;小於等於9對應的ASCII碼跳轉 add al,07H ;說面待轉換的字符為字母則再加上07H轉換為對應的字符的ASCII碼 flag: mov ASCII,al;將最終結果賦回ASCII中 mov ah,4ch int 21H CODES ends end START