Advertisement
splash365

1.asm

May 21st, 2021
834
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 100h
  3.  
  4. .data
  5. inp db 'Enter the value of X: $'
  6. num db 'Given input is a number$'
  7. vow db 'Given input is a vowel$'                  
  8. cons db 'Given input is a consonant$'
  9. ask db 'Do you want to give another input?(Y/N): $'
  10. inv db 'Invalid input$'
  11. new_line db 0ah,0dh,"$"
  12.  
  13.  
  14. .code      
  15. main proc        
  16.    ; connect code segment and data segment
  17.    mov ax, @data
  18.    mov ds, ax                                        
  19.    
  20.    ; input label            
  21.    INPUT:              
  22.    mov ah, 9
  23.    lea dx, inp
  24.    int 21h
  25.    mov ah, 1
  26.    int 21h  
  27.    mov bl, al
  28.    
  29.    ; new line
  30.    mov ah, 9
  31.    lea dx, new_line
  32.    int 21h
  33.    
  34.    ; check if it is a number
  35.    cmp bl, '9'
  36.    jg Character
  37.    cmp bl, '0'
  38.    jl Invalid
  39.    
  40.    ; Printing number
  41.    mov ah,9
  42.    lea dx, num
  43.    int 21h  
  44.    ; new line
  45.    lea dx, new_line
  46.    int 21h
  47.    
  48.    ; Jump to Query Label
  49.    jmp Query
  50.    
  51.    ; check if it is a character
  52.    Character:
  53.    cmp bl, 'A'
  54.    jl Invalid
  55.    cmp bl, 'Z'
  56.    jg Invalid
  57.    
  58.    ; check if it is a vowel
  59.    cmp bl, 'A'
  60.    je Vowel
  61.    cmp bl, 'E'
  62.    je Vowel
  63.    cmp bl, 'I'
  64.    je Vowel
  65.    cmp bl, 'O'
  66.    je Vowel
  67.    cmp bl, 'U'
  68.    je Vowel
  69.    
  70.    ; otherwise it is a consonant
  71.    
  72.    ; Printing Consonant
  73.    mov ah,9
  74.    lea dx, cons
  75.    int 21h  
  76.    ; new line
  77.    lea dx, new_line
  78.    int 21h
  79.    
  80.    ; Jump to query label
  81.    jmp Query
  82.    
  83.    
  84.    Vowel:
  85.    ; Printing Vowel
  86.    mov ah,9
  87.    lea dx, vow
  88.    int 21h  
  89.    ; new line
  90.    lea dx, new_line
  91.    int 21h
  92.    
  93.    ; Jump to query label
  94.    jmp Query
  95.    
  96.    ; check if it is a valid input
  97.    Invalid:
  98.    ; Printing Vowel
  99.    mov ah,9
  100.    lea dx, inv
  101.    int 21h  
  102.    ; new line
  103.    lea dx, new_line
  104.    int 21h
  105.    
  106.    ; ask query
  107.    Query:  
  108.    ; Printing Vowel
  109.    mov ah,9
  110.    lea dx, ask
  111.    int 21h  
  112.    mov ah, 1
  113.    int 21h  
  114.    mov bl, al
  115.    
  116.    ; new line
  117.    mov ah, 9
  118.    lea dx, new_line
  119.    int 21h
  120.    
  121.    cmp bl, 'Y'
  122.    je INPUT
  123.    cmp bl, 'N'
  124.    je End
  125.    
  126.    jmp Invalid
  127.    
  128.    End:
  129.      
  130.    main endp
  131. end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement