我希望将数组的一些元素复制到 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 - 将数组内容复制到程序集中的另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239482/