扫描字符串以查找字符,在字符后打印其余字符串

问题描述 投票:0回答:1

我正在寻找一个字符串,直到找到一个特定的字符,然后在找到该字符后打印其余的字符串。基本上,如果我的字符串是“ the quick brown fox”并且我搜索“ k”,我想打印出“ brown fox”。我已经准备好扫描所有代码,但是我很困惑如何将指针前进到定界符之后的字节并从那里打印。现在,它将所有内容打印到分隔符上,包括字符本身和随后的一些垃圾字符。

    INVOKE Str_length, strVar

    mov edi, strVar
    mov al, find
    mov ecx, LENGTHOF line
    cld
    repne scasb
    jnz NOHIT

HIT:
    cld
    rep movsb
    mov BYTE PTR[edi], 0
    mov edx, OFFSET line
    call WriteString
    call Crlf
    ret 

很明显,我的输出代码是错误的,我只是不知道从这里出发。

assembly x86 masm irvine32
1个回答
0
投票

要弄清楚,以后发给任何可能遇到相同问题的人!极其简单的解决方案:

    cld
    mov edx, edi
    call WriteString
    call Crlf
    ret 

因为scasb会增加edi直到打定界符,所以您要做的就是打印edi本身。

© www.soinside.com 2019 - 2024. All rights reserved.