;*-*-*-*-*-*-*-*-*-* 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