mlkmhd
چهارشنبه 03 تیر 1388, 13:02 عصر
سلام .کسی برنامه ای داره که یه عبارتی رو تو یه رشته پیدا کنه و با عبارت دیگه replace کنه؟
Open-Source
پنج شنبه 04 تیر 1388, 18:46 عصر
مطمئن هستی پروژه نمیخوای؟!!!!:متفکر:
اگه پروژه دانشجویی نیست قرار بدم اگر نه...
shs_night
جمعه 05 تیر 1388, 01:09 صبح
اگه c بلدی بدون استفاده از تابع کتابخانه ای اونو بنویس بعد به اسمبلی تبدیلش کن
shs_night
جمعه 05 تیر 1388, 01:28 صبح
برای تیدیل هم برو اینجا (http://barnamenevis.org/forum/showthread.php?t=163911)
mlkmhd
جمعه 05 تیر 1388, 14:03 عصر
نه بابا پروژه کجا بوده.خودم یه چیزایی نوشتم جواب نمیده
mlkmhd
جمعه 05 تیر 1388, 14:36 عصر
page 40,80
title proJEct
sseg segment para stack 'stack'
db 64 dup(?)
sseg ends
;*************************segment data
dseg segment para 'data'
str1 db 'Please enter your statement:','$'
str2 db 'name for find:','$'
str3 db 'name for reaplace:','$'
str4 db 'New statement is:','$'
Parast1 LABEL BYTE
MAXTLEN1 DB 30
actlen1 DB ?
String1 DB 30 DUP (' ') ;for enter statment
Parast2 LABEL BYTE
MAXTLEN2 DB 10
actlen2 DB ?
String2 DB 10 DUP (' ') ;word for find
Parast3 LABEL BYTE
MAXTLEN3 DB 10
actlen3 DB ?
String3 DB 10 DUP (' ') ;word for find
dseg ends
;*************************start code segment
cseg segment para 'code'
main proc far
assume ss:sseg,ds:dseg,cs:cseg,es:dseg
MOV ax,dseg
MOV ds,ax
MOV es,ax
;****************************
CALL cls
MOV dx,0100h
CALL go
LEA dx,str1
CALL print
LEA DX,Parast1
CALL gets
MOV dx,0200h
CALL go
LEA dx,str2
CALL print
LEA DX,Parast2
CALL gets
MOV dx,0300h
CALL go
LEA dx,str3
CALL print
LEA DX,Parast3
CALL gets
CALL find
end1:
MOV dx,0400h
CALL go
LEA dx,string1
CALL print
;**************************** end main program
MOV ax,4c00h
INT 21h
main endp
;**************************procedures************* ***************
;*******************for cLEAr screen
cls proc near
MOV ah,06h
MOV cx,0000h
MOV dx,184fh
MOV bh,07h
MOV al,0
INT 10h
ret
cls endp
;********************go to next line
go proc near
MOV AH,02
MOV BH,00
INT 10h
ret
go endp
;*******************for display string
print proc near
MOV AH,09
INT 21h
ret
print endp
;*****************for Get string
gets proc near
MOV AH,0AH
INT 21h
gets endp
;*****************for find text
find proc near
LEA si,parast1
LEA di,string2
mov bp,si
add bp,2
mov si,bp
mov bp,di
add bp,2
mov di,bp
L0:
mov bl,[si+2]
CMP bl,'#'
JE exit1
L1:
MOV al,[si]
CMP al,[di]
JE L2
INC si
JMP L1
L2:MOV cl,actlen1
MOV ch,0
REP CMPSB
JE L3
JMP L1
L3:
MOV al,actlen2
CMP al,actlen3
JB L4
JA L5
MOV cl,actlen2
mov ch,0
T1:
MOV al,[di]
mov [si],al
INC si
INC di
LOOP T1
JMP L0
L4:
MOV al,actlen2
MOV bl,actlen3
SUB al,bl
MOV cl,al+1
mov ch,0
T2:
INC si
LOOP T2
MOV cl,al
SHL parast1,cl
CALL reaplace
JMP L0
L5:
MOV al,actlen3
MOv bl,actlen2
SUB al,bl
MOV cl,al
SHR parast1,cl
CALL reaplace
JMP L0
exit1:
RET
find endp
;********************reaplace procedure
reaplace proc near
MOV cl,actlen3
MOV ch,0
N1:
MOV al,[di]
MOV [si],al
INC si
INC di
LOOP N1
RET
reaplace endp
;*****************************End cseg
cseg ends
end main
ببین من اینو نوشتم ولی کدای findوreplace میدونم اشتباه نوشتم اگه کدات با این برنامه بخونه ممنونت میشم
Open-Source
جمعه 05 تیر 1388, 17:49 عصر
;
;Get string. replace 'a' by '*'
;
.model small
.data
maxlen db 30
actlen db ?
string db 30 dup(?)
.code
start:
mov ax,@data
mov ds,ax
;--------- Get String
mov ah,10
mov dx,offset maxlen
int 21h
;--------- add '$' to string
mov bl,actlen
mov bh,0
mov string[bx],'$'
;----------------------
mov si,0
mov cx,bx
up:
cmp string[si],'a'
jne d1
;--else
mov string[si],'*'
;------if
d1:
inc si
loop up
;-------------------------
;------- Enter
mov ah,2
mov dl,10
int 21h
;---------Print String
mov ah,9
mov dx,offset string
int 21h
;--------Getch
mov ah,0
int 16h
;--------end
mov ah,4ch
int 21h
;--------------------------
end start
;************************** or ******************************
; mov si,0
;
; mov cx,bx
; up:
; cmp string[si],'a'
; je d1
;
; ;--else
; up2:
; inc si
; loop up
;
; ;-----------------------Print & Exit
; ;------Enter
; mov ah,2
; mov dl,10
; int 21h
; ;------ print string
; mov ah,9
; mov dx,offset string
; int 21h
; ;-------getch
; mov ah,0
; int 16h
; ;-------end
; mov ah,4ch
; int 21h
; ;-------------------------------------
;
; ;------- if
; d1:
; mov string[si],'*'
; jmp up2
این یه برنامه ساده است که یک کاراکتر رو پیدا کرده و جایگزین میکند.
:چشمک:
اگه بازم نتونستی یه برنامه پیشرفته تر قرار میدم.
mlkmhd
یک شنبه 07 تیر 1388, 01:28 صبح
مرسی از کدت ولی من بیشتر تو شیفتاش مشکل دارم.مثلا اگه کلمه ای که میخوام replace کنم از اونی که پیدا شده بزرگتر بود چه طوری شیفت به راست بدم رشته اصلی رو که کلمه ها بعدیش نپره یا بالعکس
mlkmhd
دوشنبه 08 تیر 1388, 17:26 عصر
اگه پیشرفته تره رو بزارید ممنون میشم این خیلی آسون بود
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.