0
.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
?这个程序应该将一个字符串复制到已经初始化为源字符串大小的目标框中,并让每个字段填充零。我没有使用汇编语言的经验。我错了什么? (注意:这是我的教授将程序列出来的,但他没有提供任何真实资料,因为这是一个基于网络的“计算安全”课程。装配中的操纵字符串(MASM)
是的,你说得对 - ESI应在点源,而不是目标 - 它看起来像你的“教授”h至少是该代码中的一个错误。 –
@Paul R:那应该是一个答案,而不是评论,imo – Necrolis
@Necrolis:你可能是对的 - 它感觉不够实质,不过可能它有资格 - 我会移动它。 –