我正在使用x64程序集和Visual C ++ 2010 / MASM告诉我该指令
movq mm0, rax
包含“无效指令操作数”。
这真的是非法的,还是可能是个错误? 如何在不使用指令的情况下执行此过程?
答案 0 :(得分:1)
这是一个错误,或者您没有指定64位模式或MMX扩展。
movq mm0, rax
是机器代码48 0F 6E C0
的有效指令。
请参阅intel指令集参考。如果所有其他方法都失败,您可以将机器代码包含为数据字节。
也就是说,MMX已经过时了(特别是因为在64位模式下你默认使用SSE2)。确保你真的想要使用它。