hi guys
i can replace each symbol * in string to E by using LODSB but i want do that using SCASB
------------------------------------------------------
STACKSEG SEGMENT
DW 32 DUP(?)
STACKSEG ENDS
;============================
DATASEG SEGMENT
LF EQU 0AH
CR EQU 0DH
MSG DB 'Enter the firts string...$'
MSG1 DB CR,LF,'THe string is: $'
STR1 DB 9 DUP(?)
STR2 DB 9 DUP(?)
DATASEG ENDS
;===========================
CODESEG SEGMENT
BEGIN PROC FAR
ASSUME SS

TACKSEG,DS

ATASEG,CS:CODESEG
MOV AX,DATASEG
MOV DS,AX
MOV ES,AX
;Reading the messege
LEA DX,MSG
MOV AH,9
INT 21H
;===========================
MOV CX,1
CLD
LEA DI,STR1
MOV AH,1
REPEATE:
INT 21H
STOSB
INC CX
UNTIL:
CMP AL,0DH
JNE REPEATE
DEC DI
MOV AL,'$'
STOSB
MOV DX,CX
;----------------------------------------------------
;FINd * and replace it
LEA SI,STR1
LEA DI,STR2
REP:
LODSB
CMP AL,'*'
JE STORE
STOSB
LOOP REP
STORE:
MOV AL,'E'
STOSB
CMP CX,0
JNE REP
;----------------------------------------------------
MOV CX,DX
LEA DX,MSG1
MOV AH,9
INT 21H
;Copy the character of string
LEA SI,STR2
REP1:
LODSB
MOV DL,AL
MOV AH,2
INT 21H
LOOP REP1
;Return control for assembler
MOV AH,4CH
INT 21H
BEGIN ENDP
CODESEG ENDS
END BEGIN
--------------------------------------------------
-------------------------------------------------
--------------------------------------------------
another way
but i can do that using SCASB :cry: :cry: :cry: :cry:
STACKSEG SEGMENT
DW 32 DUP(?)
STACKSEG ENDS
;============================
DATASEG SEGMENT
LF EQU 0AH
CR EQU 0DH
MSG DB 'Enter the firts string...$'
MSG1 DB CR,LF,'The string is: $'
STR1 DB 9 DUP(?)
STR2 DB 9 DUP(?)
DATASEG ENDS
;===========================
CODESEG SEGMENT
BEGIN PROC FAR
ASSUME SS

TACKSEG,DS

ATASEG,CS:CODESEG
MOV AX,DATASEG
MOV DS,AX
MOV ES,AX
;Reading the messege
LEA DX,MSG
MOV AH,9
INT 21H
;===========================
MOV CX,0
CLD
LEA DI,STR1
MOV AH,1
REPEATE:
INT 21H
STOSB
INC CX
UNTIL:
CMP AL,0DH
JNE REPEATE
DEC DI
MOV AL,'$'
STOSB
MOV DX,CX
;------------------------------------------------
CLD
LEA DI,STR1
MOV AL,'*'
TOP:
REPNE SCASB
JE REPLACE
REPLACE:
MOV AL,'E'
STOSB
CMP CX,0
JNE TOP
;----------------------------------------------------
MOV CX,DX
LEA DX,MSG1
MOV AH,9
INT 21H
;Copy the character of string
LEA SI,STR1
REP1:
LODSB
MOV DL,AL
MOV AH,2
INT 21H
LOOP REP1
;Return control for assembler
MOV AH,4CH
INT 21H
BEGIN ENDP
CODESEG ENDS
END BEGIN