اینم یه برنامه ی جدید نوشته شده توسط خودم ...!!
برنامه ای كه ماشین زیر را شبیه سازی می كنه ...!
aSb <--- S
یعنی فقط رشته های مانند رشته ی زیر رو قبول می کنه و رشته های دیگه رو قبول نکرده و پیغام نادرست رو به کاربر می ده.
ab یا aabb یا aaaabbbb و ...
به هز تعداد که کاربر بخواد.
کد:
stk segment
dw 128 dup(?)
stk ends
dts segment
max db 251
len db ?
str db 252 dup(?)
alert1 db 'enter string to compare (only a and b char)','$'
falert db 'false','$'
falert2 db 'True','$'
dts ends
cds segment
assume cs:cds,ss:stk,ds:dts
main proc far
mov ax,seg dts
mov ds,ax
mov es,ax
mov dx,offset alert1
mov ah,09h
int 21h
mov dx,offset max
mov ah,0ah
int 21h
;--------------------------------------------------------------
mov di,offset str
mov cl,len
xor ch,ch
cld
mov al,'a'
mov bl,0
sho1: repne scasb
inc bl
jcxz data1
jmp sho1
;--------------------------------------------------------------
data1:
mov al,'b'
mov dl,bl
mov di,offset str
mov cl,len
xor ch,ch
mov bl,0
;--------------------------------------------------------------
sho2:repne scasb
inc bl
jcxz data2
jmp sho2
;--------------------------------------------------------------
data2:
mov cl,dl
xor ch,ch
cmp cl,bl
je data3
data3:
mov cl,bl
mov di,offset str
nextp: cmp byte ptr [di],'a'
jne finish1
inc di
loop nextp
mov cl,bl
nextpp: cmp byte ptr [di],'b'
jne finish1
inc di
loop nextpp
jmp finish2
finish1: mov ah,09h
mov dx,offset falert
int 21h
jmp endf
finish2: mov ah,09h
mov dx,offset falert2
int 21h
endf: mov ah,4ch
int 21h
ret
main endp
cds ends
end main
علاقه مندی ها (Bookmarks)