【发布时间】:2019-11-28 06:27:49
【问题描述】:
我无法编译这个,我应该如何在 Visual Studio 中将 [eax+4] 移动到 y?
float x, y, z;
__asm
{
mov x, eax
mov y, [eax+4]
mov z, [eax+8]
}
编辑:
错误 1 错误 C2424:“+”:“第二个操作数”中的表达式不正确
【问题讨论】:
-
“无法编译”是什么意思?编译器是怎么说的?
-
你知道
[eax+4]使用EAX 作为指针,对吧?如果eax拥有一个有效的指针,那么它不太可能也用作float位模式。我认为这是一个 XY 问题,您可能正在寻找add eax,4/cvtsi2ss xmm0, eax/movss y, xmm0
标签: c++ assembly x86 inline-assembly