زبان اسمبلی- برنامه ای که یک رشته را دریافت کرده پس از شمارش کاراکتر های بزرگ و کوچک آنها را نمایش
;*-*-*-*-*-*-*-*-*-* 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
+ نوشته شده در یکشنبه بیست و دوم اردیبهشت ۱۳۸۷ ساعت 10:36 توسط behzad lotfi
|