我正在尝试将Array1
中的值移至Array2
,然后显示它们。我一直在研究这个问题,根本无法解决这个问题。有人请帮帮我吗?感谢
INCLUDE Irvine32.inc
INCLUDE macros.inc
.data
Array1 DWord 2,4,6,8,10
Array2 DWord 5 Dup(0)
.code
main PROC
mov edx, OFFSET Array1
mov esi, OFFSET Array2
mov ecx, LENGTHOF Array1
mov eax, 0
Call Dumpregs
Call Dumpregs
L1:
mWrite "Hello"
Call CRLF
Loop L1
Call Dumpregs
L2:
mov eax, [edx]
mov [esi], eax
add esi, 4
add edx, 4
Loop L2
exit
main ENDP
END main
答案 0 :(得分:1)
您的 L2 循环无法产生所需的结果,因为前面的代码擦除了ECX clean(您使用了loop L1
)。要复制阵列,您需要重新初始化ECX。此外,最好将指针EDX和ESI设置为接近此 L2 循环,因为它们可能会被所有前面的(宏)调用修改它们!
mov edx, OFFSET Array1
mov esi, OFFSET Array2
mov ecx,5
L2:
mov eax,[edx]
mov [esi],eax
add esi, 4
add edx, 4
loop L2