我需要使用内联汇编编写一个常见任务:我使用的代码如下。
Vector3 Matrix3x3::objectToInertial(const Vector3 &v)
{
return Vector3(
m11 * v.x + m12 * v.y + m13 * v.z,
m21 * v.x + m22 * v.y + m23 * v.z,
m31 * v.x + m32 * v.y + m33 * v.z
);
}
如何用
asm: m11 * v.x + m12 * v.y
生成此方程? 最佳答案
如果您真的想通过内联汇编器计算m11 * v.x + m12 * v.y,请尝试以下操作(我假设您要将结果存储在可变结果中):
__asm
{
fld m11
fmul v.x
fld m12
fmul v.y
faddp st(1), st
fstp result
}
如果您想了解有关汇编中浮点算术的更多信息,可以查看Art of Assembly Language - Chapter 14-您也可以下载pdf形式的书。