【发布时间】: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:你可能是对的 - 感觉不足以作为答案,但也许它确实符合条件 - 我会移动它。