(original) (raw)

MMX ��� ��, �� � ��� ��祣� �� ����� 1. �������� ��孮����� MMX ������ �㭪樮����� ���������� �����஢ ���⥪���� Intel �� ������ ᮢ���⨬��� � �ணࠬ���� ��� ����� ��������� �����஢. �� �ணࠬ���� ���ᯥ祭��, ᮧ������ ��� ࠭�� ���饭��� �����஢, ��� ��直� ��������� ����� �믮������� �� ������� � �孮������ MMX. MMX-������� "�������" � ����樮���� ��⥬�� �筮 ⠪ ��, ��� � ������� � ������饩 ����⮩. ��堭��� ��࠭���� � ����⠭������� ���ﭨ� ���᫥��� � ������饩 ����⮩ �ਬ���� � ��� ��࠭���� (����⠭�������) ���ﭨ� �ணࠬ��, �ᯮ����饩 �孮����� MMX. �����᪨ �孮����� MMX �� ����砥� "������" ०��� ࠡ��� �����஢ ���⥪���� Intel. 2. ��饥 ���ᠭ�� � �᭮�� �孮����� MMX ����� ���७�� ����� ������ ������ � ��⮬ ���ॡ���⥩ ᮢ६����� ���⨬����-�ணࠬ�. ������� �孮����� MMX ࠡ���� � ���묨 ⨯��� ������: 64-ࠧ�來묨 楫��᫥��묨 ����묨, � ⠪�� � ����묨, 㯠������묨 � ��㯯� (������) ��饩 ������ 64 ���. MMX-������� �ᯮ����� ��ᥬ� 64-ࠧ�來�� ॣ���஢. � ॣ���ࠬ ���ᯥ稢����� ��אַ� ����� �� ������: MM0,..., MM7. ������� ��㣨� ������� �� ����� �������� � �⨬ ॣ���ࠬ. "�����᪨" ॣ����� �孮����� MMX ࠧ��饭� � ������� ॣ���஢ � ������饩 ����⮩ (���� 0-63). ����� ��ࠧ��, �� ����� ��� ���祭�� � MMX-ॣ���� �� ���祭�� �������� � ���� �� ॣ���஢ � ������饩 ����⮩. �� �믮������ MMX-������ - �� ���� ���浪� � ������� ��� � ᮮ⢥�����饬 ॣ���� � ������饩 ����⮩ ����������� �����栬� (�� ���� 64-79) - �� ᫮�� ���ﭨ� ॣ���஢ � ������饩 ����⮩ ���������� ��ﬨ. MMX-������� �ᯮ������� � ⮬ �� ०��� ������, �� � ������� � ������饩 ����⮩. ���⮬� �� �ᯮ������ ��� MMX-������ (�஬� EMMS) "�������" ᫮�� ���ﭨ� ॣ���஢ � ������饩 ����⮩. ������� EMMS ���ᯥ稢��� ���室 ������ �� �ᯮ������ MMX-������ � �ᯮ������ ������ ������ � ������饩 ����⮩: ��� ��⠭�������� ���祭�� 1 �� ��� ࠧ�鸞� ᫮�� ���ﭨ�. �����稢��� �������� EMMS �� �ࠣ���� �ணࠬ��, � ���஬ ���� MMX-�������. �᫨ �⮣� �� ������, � - ����樨 � ������饩 ����⮩ ���� ������ ������ १�����; - ������ � १���� ����権 � ������饩 ����⮩ ���� �����஢����� �᪫�祭�� ⨯� Stack overflow. MMX-������� ������� �� ��������� ��䬥��᪨� �᪫�祭��. Ho � १���� �믮������ ��� ������ ����� �����஢����� ���뢠��� ��䬥⨪� � ������饩 ����⮩, �᫨ �� �믮������ MMX-������� 㦥 �뫮 ᣥ���஢��� �᪫�祭�� "������饩" ��䬥⨪�. MMX-������� ����� �����஢��� �᪫�祭�� �� ������ � �����. MMX-������� ����� ᫥���騩 ᨭ⠪��: instruction [dest,src] ����� instruction - ��� �������, dest ������砥� ��室��� ���࠭�, src - �室��� ���࠭�. ����設�⢮ ������ ����� ���䨪�, ����� ��।���� ⨯ ������ � �ᯮ��㥬�� ��䬥⨪�: - US (unsigned saturation) - ��䬥⨪� � ����饭���, ����� ��� �����. - S ��� SS (signed saturation) - ��䬥⨪� � ����饭���, ����� � ������. �᫨ � ���䨪� ��� �� S, �� SS, �ᯮ������ 横���᪠� ��䬥⨪� (wraparound). - B, W, D, Q 㪠�뢠�� ⨯ ������. �᫨ � ���䨪� ���� ��� �� ��� �㪢, ��ࢠ� ᮮ⢥����� �室���� ���࠭��, � ���� - ��室����. ���ਬ��, MMX-������� paddusw MM4,mem1 �믮���� ᫮����� ᫮� ��� �����. ���� ᫠����� ��室���� � MMX-ॣ���� MM4, ���� - � ����� �� ����� mem1. �㬬� �����뢠���� � ॣ���� MM4. MMX-������� �ᯮ����� ���� ⨯� ������: 㯠������� ����� (packed byte, ���䨪� ������� b), 㯠������� ᫮�� (packed word, ���䨪� w), 㯠������� ������ ᫮�� (packed doubleword, ���䨪� d) � 64-ࠧ�來� ᫮�� (quadword, ���䨪� q). ���� � � �� 64 ��� ����� �ࠪ⮢����� ����� MMX-�������� ��� 8 ����, ��㣮� �������� - ��� 4 ᫮��, � �.�. ��� ������ ��।������ ���䨪ᮬ �������. ����設�⢮ ������ �孮����� MMX ��ࠡ��뢠�� ����� � 横���᪮� ��䬥⨪�, � ������� ������� �ᯮ����� ��䬥⨪� � ����饭���. ������᪠� ��䬥⨪�. E᫨ १���� ����樨 ��室�� �� �।��� �����⨬��� ���������, � "��譨�" ���訥 ���� १���� ����뢠����. ���ਬ��, ᫮����� ���⮢ 01h � FFh ���� 00h. ��䬥⨪� � ����饭���. �᫨ १���� �������� ��� �����⨬��� ���������, � �� ��⠥��� ࠢ�� �࠭�筮�� ���祭�� ���������. ���ਬ��, �� ᫮����� ���⮢ ��� ����� �㬬� 01h � FFh ��⠥��� ࠢ��� FFh. � ��䬥⨪� � ����饭��� MMX-������� ᫮�����, ���⠭�� � 㯠����� ������ ����� ��ࠡ��뢠�� �᫠ � ������ ��� ��� �����. ����� � ������ � ��� ����� ����� ࠧ���� �����⨬� ��������. �������⥫쭮, �᫨ �ᯮ������ ��䬥⨪� � ����饭���, � �� ��室� १���� ����樨 �� �।��� �����⨬��� ��������� � ��室��� ���࠭� ���� ����ᠭ� ࠧ���� ���祭�� � ����ᨬ��� �� ⨯� ������. ���ਬ��, �᫨ १���� �ॢ�ᨫ 7FFFh, ᫮�� � ������ �㤥� ������� ࠢ�� 7FFFh, a ᫮�� ��� ����� - ���. 3. ���ᠭ�� ������ MMX-������� �ࠢ����� ����୮ �ࠢ������ �������� ������ (�����, 16- ��� 32- ࠧ�來� ᫮��) �室���� � ��室���� ���࠭���. � ����ᨬ��� �� १���� �ࠢ����� ᮮ⢥�����騩 ������� ������ ��室���� ���࠭�� ���������� ��ﬨ ���� �����栬�. �� �������, ��� � �� ��⠫�� MMX-�������, �� ��⠭�������� 䫠��� (�ਧ�����). ������� pcmpeq ������� pcmpeq ����୮ �ࠢ������ �������� ������ (�����, 16- ��� 32-ࠧ�來� ᫮��) �室���� � ��室���� ���࠭���. �᫨ ������� ������ ��室���� ���࠭�� ࠢ�� ᮮ⢥�����饬� �������� �室����, ⠪�� ������� ��室���� ���࠭�� ���������� �����栬�. �᫨ ࠢ���⢠ ���, �� ���������� ��ﬨ. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: pcmpeqb, pcmpeqw, pcmpeqd. ������� pcmpgt ������� pcmpgt ����୮ �ࠢ������ �������� ������ (�����, 16- ��� 32-ࠧ�來� ᫮�� � ������) �室���� � ��室���� ���࠭���. �᫨ ������� ������ ��室���� ���࠭�� ����� ᮮ⢥�����饣� ������� �室����, ⠪�� ������� ��室���� ���࠭�� ���������� �����栬�; e᫨ �� �� �� ����� �室����, � �� ���������� ��ﬨ. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: pcmpgtb, pcmpgtw, pcmpgtd. MMX-������� ��।�� ������ movd � movq �믮����� ����஢����: - �� ������ MMX-ॣ���� � ��㣮�, - �� MMX-ॣ���� � ������ � ���⭮, - �� MMX-ॣ���� � 楫��᫥��� ॣ���� � ���⭮ (⮫쪮 ������� movd). �।� ��� MMX-������ ⮫쪮 movd � movq ����� ����� ��室��� ���࠭� � �����; movd - �����⢥���� �������, � ���ன ���࠭� ����� ���� � 楫��᫥���� ॣ����. ������� movd ������� movd ������� 32 ���: - �� ������ ࠧ�冷� ������ MMX-ॣ���� � ����訥 ࠧ��� ��㣮�� (���訥 ࠧ��� ����������� ��ﬨ) - �� ����� ���� �� 楫��᫥����� ॣ���� � ����訥 32 ࠧ�鸞 MMX-ॣ���� (���訥 ࠧ��� ����������� ��ﬨ) - �� ������ ࠧ�冷� MMX-ॣ���� � ������ ���� � 楫��᫥��� ॣ����. ������� movq ������� movq ������� 64 ���: - �� ������ MMX-ॣ���� � ��㣮�; - �� ����� � MMX-ॣ����; - �� MMX-ॣ���� � ������. MMX-������� ᫮����� � ���⠭�� ࠡ���� � 㯠������묨 ���⠬� � ᫮���� � ������ � ��� �����, � ⠪�� � 㯠������묨 �����묨 ᫮���� � ������. ��� ����� �ᯮ�짮���� ��� 横������ ��䬥⨪�, ⠪ � ��䬥⨪� � ����饭���. ������� padd (横���᪠� ��䬥⨪�) ������� padd ᪫��뢠�� �������� ������ (�����, ᫮�� ��� ������ ᫮��) �室���� � ��室���� ���࠭��. �᫨ �㬬� ��室�� �� �࠭��� �����⨬��� ���������, � �� �ࠢ���� 横���᪮� ��䬥⨪� ����⮪ �����뢠���� �� ��㣮� �࠭��� ���������. "��७��" ������� �� ������ ������� ������ � ��㣮� �� �ந�室��. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: paddb, paddw, paddd. ������� padds (��䬥⨪� � ����饭���, ����� � ������) ������� padds ᪫��뢠�� �������� ������ (����� ��� ᫮��) �室���� � ��室���� ���࠭��. �᫨ �㬬� ��室�� �� �࠭�筮� ���祭�� �����⨬��� ���������, � १���⮬ ��⠥��� �� �࠭�筮� ���祭��. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: paddsb, paddsw. ������� paddus (��䬥⨪� � ����饭���, ����� ��� �����) ������� paddus ᪫��뢠�� �������� ������ (����� ��� ᫮��) �室���� � ��室���� ���࠭��. �᫨ �㬬� ��室�� �� �࠭�筮� ���祭�� �����⨬��� ���������, � १���⮬ ��⠥��� �� �࠭�筮� ���祭��. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: paddusb, paddusw. ������� psub (横���᪠� ��䬥⨪�) ������� psub ������ �������� ������ (�����, ᫮�� ��� ������ ᫮��) �室���� ���࠭�� �� ������⮢ ������ ��室���� ���࠭��. �᫨ १���� ��室�� �� �࠭��� �����⨬��� ���������, � �� �ࠢ���� 横���᪮� ��䬥⨪� ᮮ⢥�����饥 �᫮ ������ �����뢠���� �� ��㣮� �࠭��� ���������. "��७��" ������� �� ������ ������� ������ � ��㣮� �� �ந�室��. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: psubb, psubw, psubd. ������� psubs (��䬥⨪� � ����饭���, ����� � ������) ������� psubs ������ �������� ������ (����� ��� ᫮��) �室���� ���࠭�� �� ������⮢ ������ ��室���� ���࠭��. �᫨ ࠧ����� ��室�� �� �࠭�筮� ���祭�� �����⨬��� ���������, � १���⮬ ��⠥��� �� �࠭�筮� ���祭��. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: psubsb, psubsw. ������� psubus (��䬥⨪� � ����饭���, ����� ��� �����) ������� psubus ������ �������� ������ �室���� ���࠭�� �� ������⮢ ������ ��室���� ���࠭��. �᫨ ࠧ����� ��室�� �� �࠭�筮� ���祭�� �����⨬��� ���������, � १���⮬ ��⠥��� �� �࠭�筮� ���祭��. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: psubusb, psubusw. MMX-������� 㬭������ ����୮ ��६������ 16-ࠧ�來� ᫮�� ���࠭���, �� ���� ���� 32-ࠧ�來�� �ந��������. ������� pmaddwd ᪫��뢠�� ��ࢮ� �ந�������� � ����, � ���� � �⢥���. �㬬� �����뢠���� � 32-ࠧ�來� ᫮�� ��室���� ���࠭��. ������� pmulhw �����뢠�� � 16-ࠧ�來� ᫮�� ��室���� ���࠭�� ���訥 ࠧ��� ������� �� ����� �ந��������, � pmullw - ����訥 ࠧ��� �ந��������. ������� pmaddwd (横���᪠� ��䬥⨪�) ������� pmaddwd ����୮ ��६������ 16-ࠧ�來� ᫮�� � ������ �室���� � ��室���� ���࠭���. �� ���� ���� 32-ࠧ�來�� �ந��������. ��⥬ ��ࢮ� �ந�������� ᪫��뢠���� � ����, � ���� � �⢥���. �㬬� �����뢠���� � 32- ࠧ�來� ᫮�� ��室���� ���࠭��. �᫨ �� ᫮�� �� �室� ࠢ�� 8000h, १���⮬ �㤥� 80000000h (�� �����⢥��� ��砩, ����� ��६������� ����⥫��� �ᥫ ���� ����⥫�� १����). �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. ������� pmulhw (横���᪠� ��䬥⨪�) ������� pmulhw ����୮ ��६������ 16-ࠧ�來� ᫮�� � ������ �室���� � ��室���� ���࠭���, �� ���� ���� 32-ࠧ�來�� �ந��������. ���訥 ࠧ��� �ந�������� �����뢠���� � 16-ࠧ�來� ᫮�� ��室���� ���࠭��. ����訥 ࠧ��� �ந�������� �������. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. ������� pmullw (横���᪠� ��䬥⨪�) ������� pmullw ����୮ ��६������ 16-ࠧ�來� ᫮�� � ������ �室���� � ��室���� ���࠭���, �� ���� ���� 32-ࠧ�來�� �ந��������. ����訥 ࠧ��� �ந�������� �����뢠���� � 16-ࠧ�來� ᫮�� ��室���� ���࠭��. ���訥 ࠧ��� �ந�������� �������. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. MMX-������� 㯠����� �८�ࠧ��� ������ �������� ������ (16- � 32-ࠧ�來� ᫮��) � ����� ���⪨�. �᫨ ��室��� ���祭�� "�� ����頥���" � ���⪮� ������� ������, � �ந�室�� "����饭��" - १���⮬ ��⠥��� �࠭�筮� ���祭�� �����⨬��� ��������� ��室���� ⨯� ������. ������� �ᯠ����� ����୮ ��ꥤ����� �������� ������ �� ����� ���࠭��� � ����� ������ �������� ��室���� ���࠭��. �⨬� ��������� ����� ���짮������ ��� ����襭�� �᫠ ������ ࠧ�冷� �� ���᫥����. ������� packss ������� packss �८�ࠧ��� ������ �������� ������ (16- � 32-ࠧ�來� ᫮�� � ������) � ����� ���⪨� (����� ��� 16-ࠧ�來� ᫮�� � ������). �᫨ ��室��� ���祭�� �뫮 �� �।����� �����⨬��� ��������� ��� ��室���� ⨯� ������, � १���⮬ 㯠����� ��⠥��� ������襥 �࠭�筮� ���祭�� ���������. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: packsswb, packssdw. ������� packuswb ������� packuswb �८�ࠧ�� 16-ࠧ�來� ᫮�� � ������ �� ����� ���࠭��� � ����� ��� ����� � �����뢠�� �� � ��室��� ���࠭�. �᫨ ��室��� ᫮�� � ������ �뫮 ����� FFh, १���⮬ �८�ࠧ������ ��⠥��� FFh. �᫨ ��室��� ᫮�� � ������ ����⥫쭮, १���⮬ �८�ࠧ������ ��⠥��� 00h. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. ������� punpckh ������� punpckh ����୮ ��ꥤ����� ��室�� �������� ������ (�����, 16- ��� 32- ࠧ�來� ᫮��), ��室��訥�� � ����� 32 ࠧ�鸞� ����� ���࠭���. ����祭�� � १���� ����� ������ �������� ������ �����뢠���� � ��室��� ���࠭�. ��室�� ���祭�� ������ ࠧ�冷� ���࠭��� �� १���� �� ������. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: punpckhbw, punpckhwd, punpckhdq. ������� punpckl ������� punpckl ����୮ ��ꥤ����� ��室�� �������� ������ (�����, 16- ��� 32- ࠧ�來� ᫮��), ��室��訥�� � ������ 32 ࠧ�鸞� ����� ���࠭���. ����祭�� � १���� ����� ������ �������� ������ �����뢠���� � ��室��� ���࠭�. ��室�� ���祭�� ����� ࠧ�冷� ���࠭��� �� १���� �� ������. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����; ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: punpcklbw, punpcklwd, punpckldq. MMX-������� ᤢ��� �믮����� ᤢ�� ������� ������� ������ (16-, 32- ��� 64- ࠧ�來��� ᫮��) � ��室��� ���࠭�� �� ����稭�, ���������� �室�� ���࠭���. ������� psll (�����᪨� ᤢ�� ������) ������� psll �믮����� ᤢ�� ������⮢ ������ (16-, 32- ��� 64-ࠧ�來�� ᫮�) � ��室��� ���࠭�� �� �᫮ ���, ���������� �室�� ���࠭���. �᢮�����訥�� ����訥 ࠧ��� ����������� ��ﬨ. �室��� ���࠭� ����� ���� �����।�⢥��� ���࠭��� ���� ��室����� � MMX- ॣ���� ��� � �����. ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: psllw, pslld, psllq. ������� psra (��䬥��᪨� ᤢ�� ���ࠢ�) ������� psra �믮����� ᤢ�� ������⮢ ������ (16- ��� 32-ࠧ�來�� ᫮�) � ��室��� ���࠭�� �� �᫮ ���, ���������� �室�� ���࠭���. �᫨ ᤢ������� ������⥫쭮� �᫮, � �᢮�����訥�� ���訥 ࠧ��� ����������� ��ﬨ, � �᫨ ����⥫쭮�, � �����栬�. �室��� ���࠭� ����� ���� �����।�⢥��� ���࠭��� ���� ��室����� � MMX- ॣ���� ��� � �����. ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: psraw, psrad. ������� psrl (�����᪨� ᤢ�� ���ࠢ�) ������� psrl �믮����� ᤢ�� ������⮢ ������ (16-, 32- ��� 64-ࠧ�來�� ᫮�) � ��室��� ���࠭�� �� �᫮ ���, ���������� �室�� ���࠭���. �᢮�����訥�� ���訥 ࠧ��� ����������� ��ﬨ. �室��� ���࠭� ����� ���� �����।�⢥��� ���࠭��� ���� ��室����� � MMX- ॣ���� ��� � �����. ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. �����ন������ �������: psrlw, psrld, psrlq. �����᪨� MMX-������� �믮����� ��ࠧ�來� �����᪨� ����樨 ��� �ᥬ� 64 ��⠬� ᢮�� ���࠭���. ������� pand (������oe �) ������� pand ������ ��ࠧ�來�� �����᪮� � ᢮�� ���࠭���. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����. ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. ������� pandn (������oe ��-�) ������� pandn ������ ���饭�� (��ࠧ�來�� ��) ��室���� ���࠭��, � ��⥬ ��ࠧ�來�� �����᪮� � ����� �室�� ���࠭��� � ���饭�� ���祭��� ��室����. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����. ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. ������� por (������oe ���) ������� por ������ ��ࠧ�來�� �����᪮� ��� ᢮�� ���࠭���. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����. ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. ������� pxor (�᪫���饥 ���) ������� pxor ������ ��ࠧ�來�� �����᪮� �᪫���饥 ��� ᢮�� ���࠭���. �室��� ���࠭� ����� ��室����� � MMX-ॣ���� ��� � �����. ��室��� ���࠭� ������ ��室����� � MMX-ॣ����. 4. �ਬ��� �ᯮ�짮����� MMX-������. ������ 1: ��᮫��� ����稭� ࠧ���⥩ ��᮫��� ����稭� ࠧ���⥩ �ᥫ �ᯮ������� � �����⬠� �ᯮ�������� � ᦠ�� � ����⢥ ���ਪ� - ���� "����ﭨ�" ����� �᫠��. ���� �ணࠬ�� ����: 1. �����஢��� �������� ��室��� ����஢ �� ����� � MMX-ॣ����� �������� movq. 2. ������ �������� ��ண� ����� �� ������⮢ ��ࢮ�� � ��䬥⨪� � ����饭���, ��ᬠ�ਢ�� �� ��� �᫠ ��� �����. �᫨ ࠧ����� ����⥫쭠, ᮮ⢥�����騩 ������� ��室���� ���࠭�� �⠭�� ࠢ�� ���; �᫨ ࠧ����� ������⥫쭠, ��� ������� � ��室��� ���࠭�. 3. ����� �� ��ࠧ�� ������ �������� ��ࢮ�� ����� �� ������⮢ ��ண�. ���, ��� � �।��饬 ��砥 ����稫��� �㫨, ⥯��� ���� ������⥫�� ࠧ����. 4. ���᫨�� ��ࠧ�來�� �����᪮� ��� �� १���⮢ 蠣�� 2 � 3. �� �⮬ �� ������ ���� ������⮢ ������ �� �室� ��� � ��室��� ���࠭� ������� ��, ����� �� ࠢ�� ���. �� � �ॡ�������. ������ 2: �����୮� �ந�������� ����஢ �� ������ ��� �ᯮ������ � �ਫ������� �������� ������� � ��஢�� ��ࠡ�⪨ ᨣ�����. �����୮� �ந�������� a�b ����஢ ak � bk (k = 1,..., n) �������� ⠪: a�b = a1b1 + a2b2 + ... + anbn ����� ������ ����� �� 16-ࠧ�來�� ᫮� � ��室���� � ����� �� ���ᠬ a_vector � b_vector. �ணࠬ�� �㤥� �믮����� ᫥���騥 蠣�: 1. �����஢��� 4 ᫮�� ��ࢮ�� ����� � MMX-ॣ���� �������� movq. 2. �����஢��� 4 ᫮�� ��ண� ����� � MMX-ॣ����. 3. ����୮ ��६������ ᫮�� � ᫮���� ��ࢮ� �ந�������� � ����, � ���� � �⢥���, �������� �������� pmaddwd. 4. �������� १����� 蠣� 3 � ࠭�� ���������� �㬬�� �������� paddd �� 蠣� ᫥��� ������� ��� ��� ᫮� ��室��� ����஢ (�. �ணࠬ��). 1 loop mowq MM0,[a_vector] 2 movq MM1,[b_vector] 3 pmaddwd MM0,MM1 4 paddd MM7,MM0 5 add [a_vector],8 6 add [b_vector],8 7 sub [count],4 8 jnz loop 9 movq MM0,MM7 10 psrlq MM7,32 11 paddd MM7,MM0 12 movd mem_vdp,MM7 ������� 1-4 ॠ������ 蠣� 1-4 ������� 5-8 �࣠������ 横� �� �ᥬ ������⠬ ����஢. ������� 9-11 ᪫��뢠�� ����� �㬬�, ���������� � 横�� � ����� � ������ ࠧ�鸞� ॣ���� MM7. ������� 12 ����뫠�� १���� � ������. ������ 3: �᫮��� �롮� �ࠣ���� ����ࠦ���� MMX-������� �������� ࠧࠡ��뢠�� ����� ��䥪⨢�� �ணࠬ�� �������୮� ��䨪� � ��ࠡ�⪨ ���������ࠦ����, �� ������ ����� �������� �������� �᫮���� ���室��. ���ਬ��, ��� �뤥����� ����᪮�� ��ꥪ� � ��������� ��� �� ������த�� 䮭 ����� ��ᯮ�짮������ ᫥���騬� ���������: 1. ��ନ஢��� ���� �ࠢ������ 梥� �祪 ���孥� ���⨭�� � ᨭ�� 梥⮬ �������� pcmpeqb. 2. �������� pand ��᢮��� ���祭�� 0 �ᥬ �窠� �業�, �� ����� �㤥� ������� ��ꥪ� "��ன". 3. �������� pandn ��᢮��� ���祭�� 0 �ᥬ ᨭ�� �窠� ��室��� ���⨭�� � "��஥�". 4. �믮����� ��������� �祪 ��ꥪ� �� 䮭 �������� por. 1 pcmpeqb MM1,MM3 2 pand MM4,MM3 3 pandn MM1,MM3 4 por MM4,MM1 ��� �ࠣ���� �ணࠬ�� ��ࠡ��뢠�� ��ᥬ� �祪 � ������ ����ࠦ����. ��� ��������� �ᥣ� ��ꥪ� �� 䮭 ����� �ࠣ���� ���� �믮����� � 横�� ��� ��� �祪 ����ࠦ����. 1. ������� pcmpeqb �ନ��� ����: �窨, ᮮ⢥�����騥 "����" ����������� ��ﬨ, � ���㦠�騥 �窨 - �����栬�. 2. ������� pand ��ᢠ����� ���祭�� 0 �ᥬ �窠� 䮭�, �� ����� ������� "��ன". 3. ������� pandn ��ᢠ����� ���祭�� 0 �ᥬ ᨭ�� �窠� ���⨭�� � "��஥�". 4. ������� por �믮��� ��������� "����" �� 䮭. ������ 4: ��ᯠ����� � "ࠧ���������" ����� ���� �뢠�� �㦭� �८�ࠧ����� ���⪨� ����� � ����� ������. �᫨ �� ᫮�� ��� �����, ����� ��ᯮ�짮������ ����� �� ������ ��㯯� punpck, ������⨢���, �⮡� � ���訥 ࠧ��� १���⮢ �ࠧ� ������ �㫨. �᫨ �� ���� ������� ࠧ�來���� ᫮� � ������, ����� ����⢮���� ᫥���騬 ��ࠧ��: 1. ��ᯠ������ ᫮�� �� ������ 32 ࠧ�冷� �������� punpcklwd, ⠪, �⮡� ������� ��� ����� � ᠬ� ���訩 ࠧ�� �������� ᫮��-१����. 2. ��ᯠ������ ᫮�� �� ����� 32 ࠧ�冷� �������� punpckhwd (� ��㣮� ॣ����). 3. �믮����� ��䬥��᪨� ᤢ�� ����祭��� ������� ᫮� ���ࠢ� �������� psrad. �� �⮬ ������� ��� � ������ ᫮�� ࠧ��������, � 32-ࠧ�來� ᫮�� � ������ ���� ����� � �� �᫥��� ���祭��, �� � ��室�� 16-ࠧ�來� ᫮�� � ������.