我将 64 字节的连续内存组织成大端 DWORD。我想复制这些数据并在其他地方组织成小端。我可以在 DWORD 之后执行该 DWORD,例如:
mov eax, [rsi + rcx]
bswap eax ; setting proper endianness
mov [rdi + rcx], eax
但我觉得有一种更有效的方法,使用xmm
/ ymm
/寄存器和/zmm
等指令。问题是,那些只覆盖复制部分,没有设置字节序。所以我的问题是 - 有没有什么聪明的方法可以将如此大的数据块组织成 DWORD,或者我必须手动完成,如片段所示?或者也许还有另一种不涉及上述任何一种的有效方式?vmovdqa
vmovdqu
编辑:在@Erik Eidt 发表评论后,我改变了问题,因为原来的措辞令人困惑,并没有准确地描述手头的问题。