visual-studio - 抛出异常:访问冲突读取位置
问题描述
我正在使用一本旧书中的示例代码,但该代码是作为内联汇编编写的!我创建了一个新的控制台应用程序项目。添加了 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]
仅供参考,代码与内联汇编中的寄存器一起使用
解决方案
推荐阅读
- python - 为什么这段代码不起作用,我如何获取 url 的特定部分?
- powerapps - 如何允许用户在编辑表单时向下拉列表添加值?
- php - 致命错误:未捕获的错误:无法使用 Entrada 类型的对象作为数组
- laravel - 如何用多一列恢复软删除?
- javascript - 如何在 lodash 中对对象使用数组过滤条件?
- authentication - 使用 Microsoft 身份平台的 MVC 控制器和 WebAPI (Cookies+Bearer) 的不同身份验证方法
- emacs - Scheme和Elisp函数求值的区别
- c# - 如何禁用按钮,直到在 wpf mvvm 中进行良好验证
- python - 将整数存储为整数而不是浮点数
- python - 为什么在部署烧瓶应用程序时出现此错误?