If statement 通过条件汇编程序更改字符串
EBX寄存器具有存储字符串的地址(str1…123456)。我需要比较String1和String2的前四个字符。 如果它们相等,则将String1更改为String3。 若“str1”=字符串2,则str1=String3。(str1是Srting1的前四个字符)If statement 通过条件汇编程序更改字符串,if-statement,assembly,compare,If Statement,Assembly,Compare,EBX寄存器具有存储字符串的地址(str1…123456)。我需要比较String1和String2的前四个字符。 如果它们相等,则将String1更改为String3。 若“str1”=字符串2,则str1=String3。(str1是Srting1的前四个字符) 汇编程序最近正在学习。如果您能帮我解决这个问题,我将不胜感激。4字节是一个方便的特例:您可以使用cmp[ebx],“str2”/jne nomatch进行一次dword比较,而不是在字节上循环。您能告诉我们到目前为止有什么吗?我更新
汇编程序最近正在学习。如果您能帮我解决这个问题,我将不胜感激。4字节是一个方便的特例:您可以使用
cmp[ebx],“str2”
/jne nomatch进行一次dword比较,而不是在字节上循环。您能告诉我们到目前为止有什么吗?我更新了我的假设。您能再看一次吗?请格式化您的代码,使其可读。您想用string3替换str1,即覆盖0014EF18
处的原始内存内容,还是只需将ebx
中的地址替换为string3
,将内存保持在0014EF18
而不做任何更改就足够了?如果已就位,您希望仅替换str1的4个字符,还是复制整个string3?如果它不合适怎么办?
lea ebx, ss:[ebp-0x118]
This code adds [ebp-0x118](str1...123456) to EBX 0014EF18
This address has hex data 73 74 72 31 00 00 00 31 32 33 34 35 36(str1...123456)