我正在使用Digital-Mars C++和VC++ 10编译器,我有masm32汇编程序。如何使用mm0....mm7 64位寄存器在eax、eabx 32位寄存器之间切换数据?我可以在asm{}或_asm{}提供的c++编译器中使用它们吗?
下面这样的代码可能会很有用:
mmTo32 eax,mm3
mmTo16 bx,mm6
mmTo8 cl,mm4
ToMM mm2,eax我用谷歌搜索了一下,但找不到足够的信息。
谢谢。
发布于 2012-07-20 00:51:04
使用SSE2,因为XMM更好,也更受支持(多亏了Harold的评论,XMM与MM寄存器无关,我肯定把它和AVX/SSE混在一起了)。
请从MSDN:http://msdn.microsoft.com/en-us/library/dzs626wx(v=vs.71).aspx查看此页面
您需要的所有内部功能都在这里。编译器将它们展开为内联程序集。
您需要使用_mm_loadl_pi / _mm_loadh_pi和_mm_storel_pi/_mm_storeh_pi将值加载到内存或从内存存储值。
只需在项目选项中包含"xmmintrin.h“文件并启用SSE代码生成即可。
https://stackoverflow.com/questions/11565322
复制相似问题