【问题标题】:Change string by condition Assembler按条件汇编器更改字符串
【发布时间】:2018-11-21 10:08:00
【问题描述】:
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)

EBX 寄存器具有存储字符串的地址 (str1...123456)。我需要将 String1 的前四个字符与 String2 进行比较。 如果它们相等,则将 String1 更改为 String3。 if 'str1'=String 2 then str1=String3.(str1 是 Srting1 的前四个字符) Assembler 最近在学习。如果您能帮我弄清楚,我将不胜感激。

【问题讨论】:

  • 你能告诉我们你到目前为止有什么吗?
  • 我更新了我的问题。你能再看看吗?
  • 请格式化您的代码以使其可读。
  • 你想用string3就地替换str1,即覆盖0014EF18的原始内存内容,还是仅仅用string3的地址替换ebx中的地址就足够了,将内存保持在0014EF18 不变?如果就地,你想只替换 str1 的 4 个字符,还是复制整个 string3?如果不合适怎么办?

标签: if-statement assembly compare


【解决方案1】:

4 字节是一种方便的特殊情况:您可以使用cmp [ebx], 'str2' / jne nomatch 进行一个双字比较,而不是循环遍历字节。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多