.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB 'ENTER HEX:$'
MSG2 DB 'DECIMAL:$'
MSG3 DB 'WANT AGAIN(Y/y):$'
MSG4 DB 'ILLEGAL!!!$'
MSG5 DB 'ILLEGAL OVERLOADED!!$'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CH,0
LEVEL:
LEA DX,MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV BL,AL
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
LEA DX,MSG2
MOV AH,9
INT 21H
MOV CL,9
ADD CL,48
CMP BL,CL
JG L1
MOV DL,BL
MOV AH,2
INT 21H
JMP EXIT
L1:
CMP BL,'A'
JE L2
CMP BL,'B'
JE L3
CMP BL,'C'
JE L4
CMP BL,'D'
JE L5
CMP BL,'E'
JE L6
CMP BL,'F'
JE L7
INC CH
LEA DX,MSG4
MOV AH,9
INT 21H
CMP CH,3
JE ILLEGAL
JMP EXIT
ILLEGAL:
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
LEA DX,MSG5
MOV AH,9
INT 21H
JMP CLOSE
L2:
MOV DL,49
MOV AH,2
INT 21H
MOV DL,48
INT 21H
JMP EXIT
L3:
MOV DL,49
MOV AH,2
INT 21H
MOV DL,49
INT 21H
JMP EXIT
L4:
MOV DL,49
MOV AH,2
INT 21H
MOV DL,50
INT 21H
JMP EXIT
L5:
MOV DL,49
MOV AH,2
INT 21H
MOV DL,51
INT 21H
JMP EXIT
L6:
MOV DL,49
MOV AH,2
INT 21H
MOV DL,52
INT 21H
JMP EXIT
L7:
MOV DL,49
MOV AH,2
INT 21H
MOV DL,53
INT 21H
JMP EXIT
EXIT:
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
LEA DX,MSG3
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV BL,AL
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
CMP BL,'Y'
JE LEVEL
CMP BL,'y'
JE LEVEL
CLOSE:
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN