Mzsmunna
10/16/2019 - 8:53 AM

COA FINAL LAB 3 LAST TASK


.MODEL SMALL
.STACK 100H
.DATA
M1 DB 'enter a hex digit : $'
M2 DB 'in decimal : $'
M3 DB 'Do you want to continue? $'
M4 DB 'illigal character.( 0..9 or A..F)$'  
.CODE


MAIN PROC
    
    MOV AX,@DATA
    MOV DS,AX
    
 AGAIN:
    
    LEA DX,M1
    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,48
    JGE L1
    JMP CHAR
    
  L1:
    CMP BL,57
    JLE L2
    JMP CHAR
    
  L2:
    LEA DX,M2
    MOV AH,9
    INT 21H
      
    MOV AH,2
    MOV DL,BL
    INT 21H  
    
    MOV AH,2
    MOV DL,0DH
    INT 21H
    MOV DL,0AH
    INT 21H
    
    LEA DX,M3
    MOV AH,9
    INT 21H  
    
    MOV AH,1
    INT 21H
    MOV CL,AL
    
    CMP CL,89
    JE AGAIN
    CMP CL,121
    JE AGAIN
    
    
    
  CHAR:
    CMP BL,65
    JGE L3
    JMP WRONG
    
  L3:
    CMP BL,70
    JLE L4 
    JMP WRONG
    
   L4:
    LEA DX,M2
    MOV AH,9
    INT 21H
    
    SUB BL,17 
      
    MOV AH,2
    MOV DL,49
    INT 21H 
    
    MOV DL,BL
    INT 21H
  
    MOV AH,2
    MOV DL,0DH
    INT 21H
    MOV DL,0AH
    INT 21H
    
    LEA DX,M3
    MOV AH,9
    INT 21H  
    
    MOV AH,1
    INT 21H
    MOV CL,AL
    
    CMP CL,89
    JE AGAIN
    CMP CL,121
    JE AGAIN
    JMP EXIT 
    
  WRONG:
    LEA DX,M4
    MOV AH,9
    INT 21H
    JMP AGAIN
  EXIT:  
    MOV AH,4CH
    INT 21H
    MAIN ENDP
END MAIN