我正在使用MASM而我正在尝试与其他人交换字符串
我想用test
rull
我正在使用字符串数组:This is a test
我正在尝试搜索test
并将其替换为rull
。
我做了一切,但是,我有两个问题
rull
,llur
。t
打印rull
,因此替换后的输出将为trull
。
我不确定t
来自哪里。有人可以帮忙吗?
这是我到目前为止所做的:
cld lea edi, str2 mov ecx, lengthof str2 mov eax, 'test' repne scasb je found jne notfound dec edi call crlf found: mov eax, 'llur' stosd lea edi, str2 L1: mov eax, [edi] call writechar add edi, type str2 loop l1
答案 0 :(得分:0)
1-我必须反向写rull,llur
这就是MASM在将它们用作直接操作数时如何解释字符串文字。
在将2-它用rull打印t所以更换后的输出将是trull我不知道t来自哪里
SCASB
与EDI
进行比较后, AL
会增加[EDI]
,所以当REPNE SCASB
完成后,您将超过您正在寻找的角色一个字节对于。您已经有dec edi
来对付此问题,但您已使用je found
跳过该指示。
您是否也打算寻找'test'
或't'
?您将'test'
移动到eax
(最终会以'tset'
移动),但您只扫描一个字节。