.MODEL SMALL
.STACK 100H
.DATA
a DB 'INPUT: $'
b DB 'OUTPUT: $'
c DB 'EXIT.$'
d DB 0DH,0AH,'$'
e DB 'ERROR.$'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
INPUT:
MOV AH,9
LEA DX,a
INT 21H
MOV AH,1
INT 21H
MOV BL,AL
CMP BL,'0'
JE LINE2
CMP BL,122
JG LINE3
CMP BL,96
JG LINE1
CMP BL,90
JG LINE3
CMP BL,65
JL LINE3
MOV AH,2
MOV CH,00100000B
INT 21H
OR BL,CH
JZ OUTPUT
JNZ OUTPUT
LINE1:
MOV AH,2
MOV CL,00100000B
INT 21H
XOR BL,CL
JZ OUTPUT
JNZ OUTPUT
OUTPUT:
MOV AH,9
LEA DX,d
INT 21H
LEA DX,b
INT 21H
MOV AH,2
MOV DL,BL
INT 21H
MOV AH,9
LEA DX,d
INT 21H
JMP INPUT2
;OUTPUT2:
;
; MOV AH,9
; LEA DX,d
;INT 21H
;
; LEA DX,b
;INT 21H
; MOV AH,2
; MOV DL,BL
; INT 21H
; MOV AH,9
;LEA DX,d
;INT 21H
;
;JMP INPUT
LINE2:
MOV AH,9
LEA DX,d
INT 21H
MOV AH,9
LEA DX,c
INT 21H
JMP EXIT
LINE3:
MOV AH,9
LEA DX,d
INT 21H
MOV AH,9
LEA DX,e
INT 21H
MOV AH,9
LEA DX,d
INT 21H
JMP INPUT
INPUT2:
MOV AH,9
LEA DX,a
INT 21H
MOV AH,1
INT 21H
MOV BL,AL
CMP BL,'0'
JE LINE5
CMP BL,122
JG LINE6
CMP BL,96
JG LINE4
CMP BL,90
JG LINE6
CMP BL,65
JL LINE6
MOV AH,2
MOV CH,00100000B
INT 21H
OR BL,CH
JZ OUTPUT2
JNZ OUTPUT2
LINE4:
MOV AH,2
MOV CL,00100000B
INT 21H
XOR BL,CL
JZ OUTPUT2
JNZ OUTPUT2
OUTPUT2:
MOV AH,9
LEA DX,d
INT 21H
LEA DX,b
INT 21H
MOV AH,2
MOV DL,BL
INT 21H
MOV AH,9
LEA DX,d
INT 21H
JMP INPUT2
;OUTPUT2:
;
; MOV AH,9
; LEA DX,d
;INT 21H
;
; LEA DX,b
;INT 21H
; MOV AH,2
; MOV DL,BL
; INT 21H
; MOV AH,9
;LEA DX,d
;INT 21H
;
;JMP INPUT
LINE5:
MOV AH,9
LEA DX,d
INT 21H
MOV AH,9
LEA DX,c
INT 21H
JMP EXIT
LINE6:
MOV AH,9
LEA DX,d
INT 21H
MOV AH,9
LEA DX,e
INT 21H
MOV AH,9
LEA DX,d
INT 21H
JMP INPUT2
EXIT:
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN