【问题标题】:Store a string in register在寄存器中存储一个字符串
【发布时间】:2016-08-09 10:49:37
【问题描述】:

我正在尝试用汇编语言连接两个字符串。

mov esi, str1
mov eax, str1
mov edx, [str2]
call slen
mov [esi+eax-1], edx

除了第二个字符串只附加了 4 个字符之外,一切都很好。我知道它发生的原因,但我似乎找不到任何解决方案。

【问题讨论】:

  • NASM 和微处理器标签不能一起使用.... NASM 仅适用于 Intel。
  • 解决方案涉及使用指针。您用来教授编程的书应该涵盖这一点,但您必须等到以后。你必须先了解整数运算。
  • 这可能有助于理解 ASM 中的“字符串”(更像是数据块):stackoverflow.com/a/38831846/4271923

标签: string assembly x86 nasm


【解决方案1】:

您不能在寄存器中存储任何字符串。它必须等于或小于寄存器大小(假设我们讨论的是 ASCII 编码字符串),因为寄存器具有固定大小。

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2020-09-16
    • 2015-12-30
    • 2023-03-21
    • 2019-04-21
    • 1970-01-01
    相关资源
    最近更新 更多