Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在程序集中操作字符串(MASM)_String_Assembly_Masm - Fatal编程技术网

String 在程序集中操作字符串(MASM)

String 在程序集中操作字符串(MASM),string,assembly,masm,String,Assembly,Masm,在.data部分中,我看到source被定义为字符串。 在.code部分中,我看到目标的内存位置存储在源索引中。我是否应该让源索引(ESI)指向源,而不是目标?该程序应该将一个字符串复制到已初始化为源字符串大小的目标框中,并用零填充每个字段。我没有汇编语言的经验。我做错了什么?(注意:这是我的教授列出的程序,但他没有提供任何关于这方面的真实材料,因为这是一门基于网络的“计算安全”课程。是的,你说得对-esi应该指向源代码,而不是目标代码-看起来你的教授在代码中至少有一个bug。更改: .data

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

是的,你说得对-
esi
应该指向
源代码,而不是
目标代码-
看起来你的教授在代码中至少有一个bug。更改:

.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
致:


是的,你是对的-esi应该指向源代码,而不是目标代码-看起来你的“教授”在代码中至少有一个bug。@Paul R:这应该是答案,而不是注释,imo@Necrolis当前位置您可能是对的-它不足以成为一个实质性的答案,但可能它确实符合条件-我将移动它。
          mov  esi, OFFSET target
          mov  esi, OFFSET source