多媒体指令(像素处理)
mmx指令:
movq:移动8个字节。
paddb:每1个字节作为一个整体单元相加。
emms:mmx指令结束标志。
#include <iostream> #include <windows.h> #include <gdiplus.h> //为将来使用GDI+处理图像做准备 #pragma comment(lib, "gdiplus.lib") using namespace Gdiplus; using namespace std; typedef union { ARGB Color; struct { BYTE Blue; BYTE Green; BYTE Red; BYTE Alpha; }; }Pix; int main(int argc, char* argv[]) { Pix a[4]; Pix b[4]; Pix c[4]; for (int i=0;i<4;i++) { a[i].Color=0x22222222; b[i].Color=0x11111111; } __asm { mov ebx,0; mov ecx,2; lp: movq mm0,[a+ebx]; movq mm1,[b+ebx]; paddb mm0,mm1; movq [c+ebx],mm0; add ebx,8; dec ecx; jnz lp; emms } system("pause"); return 0; }