如何将通用64位寄存器的值写入MMX?

时间:2015-01-16 02:09:42

标签: assembly x86-64 masm visual-c++-2010 mmx

我正在使用x64程序集和Visual C ++ 2010 / MASM告诉我该指令

movq mm0, rax

包含“无效指令操作数”。

这真的是非法的,还是可能是个错误? 如何在不使用指令的情况下执行此过程?

1 个答案:

答案 0 :(得分:1)

这是一个错误,或者您没有指定64位模式或MMX扩展。 movq mm0, rax是机器代码48 0F 6E C0的有效指令。 请参阅intel指令集参考。如果所有其他方法都失败,您可以将机器代码包含为数据字节。

也就是说,MMX已经过时了(特别是因为在64位模式下你默认使用SSE2)。确保你真的想要使用它。