我正在将数组的某些元素复制到Assembly中的另一个元素。通过存储在寄存器中的指针访问两个数组。因此,edx将指向一个数组,而eax将指向另一个数组。基本上,edx指向从文本文件读取的字符数组,我希望eax仅包含32个字符。这是我正在尝试做的事情:

使用NASM进行I386组装

add edx, 8 ; the first 8 characters of the string are not wanted

mov cl, 32
ip_address:
; move the character currently pointed to by edx to eax (mov [eax], [edx])
inc edx
inc eax
loop ip_address

再次,我希望将32个字符放在要放置在第二个数组中的前八个字符之后。问题是我对如何执行此操作感到很困惑。非常感谢您的帮助。

最佳答案

您不能在x86中直接执行内存到内存的移动。您需要使用另一个暂存器:

mov ecx, [edx]
mov [eax], ecx

或类似的东西...

关于arrays - 将阵列内容复制到 assembly 体中的另一个阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5239482/

10-11 23:07