2016-05-04 13 views
1

「?」の後に文字列内のすべてを削除するにはどうすればよいですか? ?これまでのコードでは '?'を検索しています。そこからどのように進むのですか?文字列内の特定の文字の後ろのすべてを削除するにはどうすればよいですか?

これは私のコードです。

INCLUDE Irvine32.inc 

.data 
source BYTE "Is this a string? Enter y for yes, and n for no",0 

.code 
main PROC 

mov edi, OFFSET source 
mov al, '?'     ; search for ? 
mov ecx, LENGTHOF source 
cld 
repne scasb  ; repeat while not equal 
jnz quit 
dec edi   ; edi points to ? 

end main 

答えて

-1

"?"ゼロによって、 "?"の後のすべての文字

INCLUDE Irvine32.inc 

.data 
source BYTE "Is this a string? Enter y for yes, and n for no",0 

.code 
main PROC 

mov edi, OFFSET source 
mov al, '?'     ; search for ? 
mov ecx, LENGTHOF source 
cld 
repne scasb  ; repeat while not equal 
jnz quit 
dec edi   ; edi points to ? 

;REPLACE ALL CHARACTERS BY "AL" (ZERO) STARTING WHERE "EDI" WAS AND 
;FINISH WHEN "ECX" == 0. 
mov al, 0   ;<===================================== 
repne stosb  ;<===================================== 

end main 

「?」を検索した後でEDIとECXの値をどのように使用しているかに注目してください。

+0

"?"をすべて__after__に置き換える方法については、 'dec edi'命令が"? "を上書きします。 – Fifoernik

関連する問題