So my doubt is why are we using ADD AL,07H if AL contains something greater than 10? What's the explanation for ADD AL,07. Here is the code.
MOV AH,01H ;TAKE INPUT
INT 21H
MOV BL,AL ; SAVE VALUE OF AL, SO THAT IT CAN BE USED LATER
MOV CL,04H
SHR AL,CL ;SHIFT AL TOWARDS RIGHT BY 4 BITS
CMP AL,0AH ;COMPARE IF AL HAS 10
JB DIGIT
ADD AL,07H
DIGIT:
ADD AL,30H ;Add 30 to make HEX equivalent ASCII code
MOV RES,AL
AND BL,0FH
CMP BL,0AH
JB DIGIT1
ADD BL,7H
DIGIT1:
ADD BL,30H
MOV RES+1,BL
LEA DX,RES ; display the result
MOV AH,9
INT 21H
Thank you.