PDA

View Full Version : سوال: جست و جو در متن



elahe software
پنج شنبه 08 دی 1390, 17:57 عصر
من برنامه ای که دنبال یه کلمه باشه (هر تعداد تکرار و باید مکان هر کلمه رو بریزم تو یه متغیر) تو جمله نوشتم. ولی درست کار نمی کنه ؛ میشه راهنماییم کنید. مشکلش هم فکر می کنم اینه که تعداد مقایسه رو اشتباه به دست میاره.








;************************************************* ****** data

datasg segment
string db 'happy new day$'
key db 'new'
pa db '$'
place dw 3 dup(0)
count dw 0
datasg ends

;************************************************* ****** code

codesg segment
assume ds:datasg,es:datasg,cs:codesg


main proc
cld
LEA SI,string
lea di,pa

mov al,[si]
mov ah,09
int 21h

next:

inc cx
cmpsb
jne next



LEA SI,string
lea di,key
mov bx,0

compare:

repne cmpsb
cmp cx,0
je exit
mov place+bx,cx
inc bx
jmp compare

exit:

mov ax,4c00h
int 21h

codesg ends
main endp

;************************************************* ******

xman_1365_x
شنبه 17 دی 1390, 02:23 صبح
خوب کلا اشتباه نوشتین(تعریف نادرست سگمنت و مقدار دهی اولیه نشدن ثبات ها و الگوریتم اشتباه)
از repne scasb برای جستجو استفاده کنید و از emu8086 برای راحتی کار
باید رشتتون در اشارگر باشه که بعد از هر بار پیدا شدن به اندیس بعد اشاره کنه
کتاب داریوش نیکمهر ساده گفته بخونید فصل مربوطه رو اگر مشکلی داشتین بپرسین
موفق باشی