Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 通过条件汇编程序更改字符串_If Statement_Assembly_Compare - Fatal编程技术网

If statement 通过条件汇编程序更改字符串

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比较,而不是在字节上循环。您能告诉我们到目前为止有什么吗?我更新

EBX寄存器具有存储字符串的地址(str1…123456)。我需要比较String1和String2的前四个字符。 如果它们相等,则将String1更改为String3。 若“str1”=字符串2,则str1=String3。(str1是Srting1的前四个字符)
汇编程序最近正在学习。如果您能帮我解决这个问题,我将不胜感激。

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)