问题描述
我正在使用一本旧书中的示例代码,但该代码是作为内联汇编编写的! 我创建了一个新的控制台应用程序项目。添加了 MASM 依赖项,文件类型为 Microsoft Macro Assembler。
无论是针对 32 还是 64,我都会收到此错误!
=>MOVAPS XMM0,[esi]
Exception thrown at 0x00D4101C in Project3.exe: 0xC0000005: Access violation reading location 0xFFFFFFFF
Exception thrown at 0x00000000004F101C in Project3.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
asmcode.asm
.model flat,c
.const
.data
A dd 0.1,0.2,0.3,0.4
B dd 1,2,3,4
.code
main PROC
MOV esi,A
MOV edi,B
MOVAPS XMM0,[esi]
MOVUPS XMM1,[edi]
ADDPS XMM0,XMM1
MOVAPS XMM1,XMM0
MOVAPS[esi],XMM0
MOVUPS[edi],XMM1
main endp
end
知道为什么它不起作用吗? 当我尝试获取 A 和 B 的地址而不是寄存器 esi 和 edi 的地址时,它起作用了
所以这有效
MOVAPS XMM0,[A]
MOVUPS XMM1,[B]
仅供参考该代码与内联汇编中的寄存器一起使用
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)