【问题标题】:Manipulating Strings in Assembly (MASM)在汇编中操作字符串 (MASM)
【发布时间】:2011-06-29 14:30:51
【问题描述】:
.data
    source  BYTE  "Defense mechanism",0
    target  BYTE  SIZEOF source DUP(0)

.code
    main PROC

        mov  esi, OFFSET target
        mov  edi, OFFSET target
        mov  ecx, SIZEOF source
    L1:
        mov  al,[esi]           ; get a character from source
        mov  [edi],al           ; store it in the target
        inc  esi                ; move to next character
        inc  edi
        loop L1

.data 部分,我看到source 被定义为字符串。 在.code 部分,我看到target 的内存位置存储在源索引中。我不应该希望源索引 (ESI) 指向 source 而不是 target?该程序应该将一个字符串复制到已初始化为源字符串大小的目标框中,并让每个字段都用零填充。我没有汇编语言的经验。我怎么了? (注意:这是我的教授列出该程序的方式,但他没有提供任何关于此的真实材料,因为这是一门基于网络的“计算安全性”课程。

【问题讨论】:

  • 是的,你是对的 - esi 应该指向源,而不是目标 - 看起来你的“教授”在该代码中至少有一个错误。
  • @Paul R:这应该是一个答案,而不是评论,imo
  • @Necrolis:你可能是对的 - 感觉不足以作为答案,但也许它确实符合条件 - 我会移动它。

标签: string assembly masm


【解决方案1】:

是的,你是对的 - esi 应该指向 source,而不是 target - 看起来你的教授在该代码中至少有一个错误。变化:

          mov  esi, OFFSET target

到:

          mov  esi, OFFSET source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    相关资源
    最近更新 更多