如何解决.data 数组中 MOVDQU 的“指令操作数必须具有相同的大小”
我有一个包含 2 个数组的 .asm 文件:
.DATA
compara byte 16 dup (?)
subtrai byte 16 dup (128)
然后我尝试在数组上使用 movdqu
(到 xmm1
和 xmm2
),但我遇到了问题。
即使它们的大小相同,每个数组也存储 16 个字节的数据,但我收到错误消息:
错误 A2022:指令操作数的大小必须相同
movdqu xmm2,compara
movdqu xmm1,subtrai
解决方法
MASM 讨论的是一个元素(字节)的大小,而不是数组的总大小。就像你写了 mov eax,compara
一样,你需要 mov eax,dword ptr compara
让它从 1 字节元素的数组中发出 4 字节的负载,即使它是 byte 4 dup(?)
movdqu xmm2,xmmword ptr [compara]
方括号是可选的,但 IMO 良好的风格是始终将它们用于内存操作数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。