;*-*-*-*-*-*-*-*-*-* STACK SEGMENT *-*-*-*-*-*-*-*-*-*

stacksg segment para stack 'stack'
        dw 32 dup('?')
stacksg ends

;*-*-*-*-*-*-*-*-*-* DATA SEGMENT *-*-*-*-*-*-*-*-*-*

datasg segment para 'data'
msg  db "********** MADE BY REZA AKHLAGHY & MOHAMMAD SERAFAT **********",'$'
msg0 db "---------------------------------------------------------------------",'$'
msg1 db "Enter  a String: ",'$'
msg2 db "Count Of Big Character: ",'$'
msg3 db "Count Of Small Character: ",'$'
msg4 db "Your Big Char Is : ",'$'
msg5 db "Your Small Char Is : ",'$'
strlist   label  byte
max db 10
len   db ?
buffer db 10 dup(' ')
countb db 2 dup('0')
counts db 2 dup('0')
strbig  db 11 dup(' ')
strsmall  db 11 dup(' ')
datasg ends

;*-*-*-*-*-*-*-*-*-* CODE SEGMENT *-*-*-*-*-*-*-*-*-*

codesg segment para 'code'

main proc far
assume cs:codesg,ds:datasg,es:codesg   
 	mov  ax,datasg
	mov  ds,ax

;*-*-*-*-*-*-*-*-*-* CLEAR SCREEN *-*-*-*-*-*-*-*-*-*

	mov ax,0600h
        mov bh,26
        mov cx,0000
        mov dx,184fh
        int 10h

;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,1
	mov dl,7
	mov bh,0
	int 10h
	
;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE0 *-*-*-*-*-*-*-*-*-*

	lea    dx,msg0
	mov ah,9h
	int    21h
;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,2
	mov dl,7
	mov bh,0
	int 10h
	
;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE *-*-*-*-*-*-*-*-*-*

	lea    dx,msg
	mov ah,9h
	int    21h
;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,3
	mov dl,7
	mov bh,0
	int 10h
	
;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE0 *-*-*-*-*-*-*-*-*-*

	lea    dx,msg0
	mov ah,9h
	int    21h
	
;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,10
	mov dl,30
	mov bh,0
	int 10h
	
;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE1 *-*-*-*-*-*-*-*-*-*

	lea    dx,msg1
	mov ah,9h
	int    21h
	
;*-*-*-*-*-*-*-*-*-* GET THE STRING *-*-*-*-*-*-*-*-*-*

	mov ah,0ah
	lea dx,strlist
	int 21h
	
;*-*-*- SPLIT BIG CHARACTER AND SMALL CHARACTER  -*-*-*

	lea bx,buffer
	mov cl,0
	lea   si,strbig
	lea   di,strsmall
	mov al,0
	mov ah,0
first:       
	mov dl,[bx]
	cmp dl,65
	jl  en1
	cmp dl,90
	jg   b1
	mov [si],dl
	inc  ah
	inc  si
b1:       
	cmp dl,97
	jl    en1
	cmp dl,122
	jg    en1
	mov [di],dl
	inc    al
	inc    di
en1:       
	inc    bx
        inc    cl
	cmp  cl,len
	jne    first

	mov strbig[10],'$'
	mov strsmall[10],'$'	
	add al,30h
	add ah,30h
	mov countb,ah
	mov counts,al
	mov countb[1],'$'
	mov counts[1],'$'

;*-*-*-*-*-*-*-*-*-* CLEAR SCREEN *-*-*-*-*-*-*-*-*-*

	mov ax,0600h
        mov bh,26
        mov cx,0000
        mov dx,184fh
        int 10h

;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,10
	mov dl,25
	mov bh,0
	int 10h
	
;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE2 *-*-*-*-*-*-*-*-*-*

	lea    dx,msg2
	mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* PRINT COUNTBIG *-*-*-*-*-*-*-*-*-*

	lea   dx,countb
	mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* MOV CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,11
	mov dl,25
	mov bh,0
	int 10h

;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE3 *-*-*-*-*-*-*-*-*-*

	lea    dx,msg3
	mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* PRINT COUNT SMALL *-*-*-*-*-*-*-*-*-*

	lea   dx,counts
        mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,12
	mov dl,25
	mov bh,0
	int 10h

;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE4 *-*-*-*-*-*-*-*-*-*

	lea    dx,msg4
	mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* PRINT STRBIG *-*-*-*-*-*-*-*-*-*

	lea    dx,strbig
	mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,13
	mov dl,25
	mov bh,0
	int 10h

;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE5 *-*-*-*-*-*-*-*-*-*

	lea    dx,msg5
	mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* PRINT STRSMALL *-*-*-*-*-*-*-*-*-*

	lea    dx,strsmall
	mov al,0
        mov ah,09h
        int 21h

;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,20
	mov dl,7
	mov bh,0
	int 10h
	
;*-*-*-*-*-*-*-*-*-* PRINT MASSAGE *-*-*-*-*-*-*-*-*-*

	lea    dx,msg
	mov ah,9h
	int    21h

;*-*-*-*-*-*-*-*-*-* MOVE CURSOR *-*-*-*-*-*-*-*-*-*

	mov ah,2h
	mov dh,26
	mov dl,30
	mov bh,0
	int 10h

;*-*-*-*-*-*-*-*-*-* CLOSE PROGRAM *-*-*-*-*-*-*-*-*-*	
	mov  ax,4c00h
	int     21h


main endp
       codesg ends
	    end main