#include <iostream> using namespace std; int main(int argc, char* argv[]) { float a[8]={1,2,3,4,5,6,7,8}; float b[8]={1,2,3,4,5,6,7,8}; float c[8]; //两个数组相乘的结果 __asm { mov ebx,0; mov ecx,2; //循环两次 lp: movups xmm0,[a+ebx]; //一次存入xmm中16个字节即4个数 movups xmm1,[b+ebx]; mulps xmm0,xmm1; movups [c+ebx],xmm0; add ebx,16; dec ecx; jnz lp; } for (int i=0;i<8;i++) cout<<c[i]<<" "; system("pause"); return 0; }
直接跳过mmx指令,使用sse指令。