arrays - 将数组内容复制到程序集中的另一个数组

标签 arrays assembly cpu-registers

我希望将数组的一些元素复制到 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/

相关文章:

php - 如何识别给定数组范围内是否存在给定数字?

c++ - C/C++ : How to check if an array is static or dynamic during runtime

C++ vector 数据访问

assembly - 如何诊断 GNU ld 链接器行为随时间变化的差异?

c - 使用编译器为您查找寄存器在 C 中嵌入程序集

serial-port - atmega32中UBRRH和UBRRL寄存器的作用是什么?

php - 如何使用 fputcsv PHP 将多维数组导出到特定的 .csv 布局

linux - 为 Armv7 汇编程序打印换行符

assembly - INT 13h,获取最后操作的状态

c - CPU寄存器的大小