24531904_j
24531904_j 24531904_j
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unpack High Packed Data オペコード 命令 説明 0F 68 /r PUNPCKHBW mm, mm/m64 mm および mm/m64 からの上位バイトを mm にインタ リーブする。 0F 69 /r PUNPCKHWD mm, mm/m64 mm および mm/m64 からの上位ワードを mm にインタ リーブする。 0F 6A /r PUNPCKHDQ mm, mm/m64 mm および mm/m64 からの上位ダブルワードを mm にイ ンタリーブする。 説明 デステ ィ ネーシ ョ ン ・ オペラン ド ( 第 1 オペラン ド ) とソース・オペランド ( 第 2 オペラ ンド ) の上位デー タ要素 ( バイ ト、 ワー ド、 またはダブルワー ド ) をデステ ィ ネーシ ョ ン・オペランドにアンパックしてインタリーブする( 図 2-22 を参照 )。 下位データ要素 は無視される。 デスティネーション・オペランドは、 MMX テクノロジ ・ レジスタでな ければならない。 ソ ース ・ オペラン ド には、 MMX テクノロジ ・ レジスタまたは 64 ビッ トのメモリ ・ ロケーションを使用できる。 ソース ・データがメモリ ・ オペランドからで ある と きは、 64 ビッ トのオペランドすべてがメモリからアクセスされるが、 命令は上位 32 ビ ッ ト だけ を使用す る。 図 2-22. PUNPCKHBW 命令での上位バイトのアンパックとインタリーブ PUNPCKHBW mm, mm/m64 mm/m64 27 26 25 24 23 22 21 20 17 16 15 14 13 12 11 10 27 17 26 16 25 15 24 14 mm 3006031 PUNPCKHBW 命令は、 ソ ー ス ・ オペラ ン ド の 4 上位バイ ト と デス テ ィ ネ ー シ ョ ン ・ オペ ランドの 4 上位バイ ト を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に書き込む。 PUNPCKHWD 命令は、 ソ ー ス ・ オペラ ン ド の 2 上位ワ ー ド と デス テ ィ ネ ー シ ョ ン ・ オペ ランドの 2 上位ワ ー ド を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に書き込む。 PUNPCKHDQ 命令は、 ソース ・ オペランドの上位ダブルワー ド とデスティネーション ・ オペランドの上位ダブルワードをインタリ ーブして、 それらをデスティネーション ・ オ ペラン ド に書き込む。 ソ ー ス ・ オペラ ン ド がすべてゼ ロ である場合、 ( デステ ィ ネーシ ョ ン ・ オペラン ド にス ト アされる ) 結果は、 デステ ィ ネ ー シ ョ ン ・ オペラン ド の元の値の上位デー タ要素がゼロ 拡張 さ れた も のにな る。 PUNPCKHBW 命令では、 上位バイ ト がゼ ロ拡張され ( すなわ ち、 符号なしワー ド にアンパッ ク される )、 PUNPCKHWD 命令では、 上位ワ ー ド がゼ ロ 拡張 さ れる ( 符号なしダブルワ ー ド にアンパ ッ ク さ れる )。 3:838 第 3 巻 : IA-32 MMX ® テクノロジ命令リファレンス mm
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unpack High Packed Data ( 続き ) 操作 IF instruction is PUNPCKHBW THEN DEST(7..0) ← DEST(39..32); DEST(15..8) ← SRC(39..32); DEST(23..16) ← DEST(47..40); DEST(31..24) ← SRC(47..40); DEST(39..32) ← DEST(55..48); DEST(47..40) ← SRC(55..48); DEST(55..48) ← DEST(63..56); DEST(63..56) ← SRC(63..56); ELSE IF instruction is PUNPCKHW THEN DEST(15..0) ← DEST(47..32); DEST(31..16) ← SRC(47..32); DEST(47..32) ← DEST(63..48); DEST(63..48) ← SRC(63..48); ELSE (* instruction is PUNPCKHDQ *) DEST(31..0) ← DEST(63..32) DEST(63..32) ← SRC(63..32); FI; 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )、 NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 保護モード例外 #GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #UD CR0 の EM がセッ ト された場合。 #NM CR0 の TS がセ ッ ト さ れた場合。 #MF 未処理の FPU 例外がある場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 第 3 巻 : IA-32 MMX ® テクノロジ命令リファレンス 3:839
- Seite 800 und 801: PACKSSWB/PACKSSDW—Pack with Signe
- Seite 802 und 803: PACKSSWB/PACKSSDW—Pack with Signe
- Seite 804 und 805: PACKUSWB—Pack with Unsigned Satur
- Seite 806 und 807: PADDB/PADDW/PADDD—Packed Add (
- Seite 808 und 809: PADDSB/PADDSW—Packed Add with Sat
- Seite 810 und 811: PADDSB/PADDSW—Packed Add with Sat
- Seite 812 und 813: PADDUSB/PADDUSW—Packed Add Unsign
- Seite 814 und 815: PAND—Logical AND オペコード
- Seite 816 und 817: PANDN—Logical AND NOT オペコ
- Seite 818 und 819: PCMPEQB/PCMPEQW/PCMPEQD—Packed Co
- Seite 820 und 821: PCMPEQB/PCMPEQW/PCMPEQD—Packed Co
- Seite 822 und 823: PCMPGTB/PCMPGTW/PCMPGTD—Packed Co
- Seite 824 und 825: PMADDWD—Packed Multiply and Add
- Seite 826 und 827: PMULHW—Packed Multiply High オ
- Seite 828 und 829: PMULLW—Packed Multiply Low オペ
- Seite 830 und 831: POR—Bitwise Logical OR オペコ
- Seite 832 und 833: PSLLW/PSLLD/PSLLQ—Packed Shift Le
- Seite 834 und 835: PSLLW/PSLLD/PSLLQ—Packed Shift Le
- Seite 836 und 837: PSRAW/PSRAD—Packed Shift Right Ar
- Seite 838 und 839: PSRLW/PSRLD/PSRLQ—Packed Shift Ri
- Seite 840 und 841: PSRLW/PSRLD/PSRLQ—Packed Shift Ri
- Seite 842 und 843: PSUBB/PSUBW/PSUBD—Packed Subtract
- Seite 844 und 845: PSUBSB/PSUBSW—Packed Subtract wit
- Seite 846 und 847: PSUBSB/PSUBSW—Packed Subtract wit
- Seite 848 und 849: PSUBUSB/PSUBUSW—Packed Subtract U
- Seite 852 und 853: PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unp
- Seite 854 und 855: PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ—Unp
- Seite 856 und 857: PXOR—Logical Exclusive OR オペ
- Seite 858 und 859: 3:846 第 3 巻 : IA-32 MMX ® テ
- Seite 860 und 861: 令テ ク ノ ロジを組み込
- Seite 862 und 863: 図 3-3. パックド操作 図 3-4
- Seite 864 und 865: COMISS (Compare scalar single-preci
- Seite 866 und 867: scalar 32-bit integer) 命令は、
- Seite 868 und 869: MASKMOVQ (Non-temporal byte mask st
- Seite 870 und 871: 3.7.1 実数体系 図 3-8 に示
- Seite 872 und 873: て異なる。 バイアス定数
- Seite 874 und 875: 極端な場合には、 先頭の
- Seite 876 und 877: 3.8 データ・フォーマット
- Seite 878 und 879: 3.10 命令プリフィックス
- Seite 880 und 881: •xmm/m64: 128 ビット ・マル
- Seite 882 und 883: ADDPS—Packed Single-FP Add ( 続
- Seite 884 und 885: ADDSS—Scalar Single-FP Add ( 続
- Seite 886 und 887: ANDNPS—Bit-wise Logical And Not F
- Seite 888 und 889: ANDPS—Bit-wise Logical And for Si
- Seite 890 und 891: CMPPS—Packed Single-FP Compare (
- Seite 892 und 893: CMPPS—Packed Single-FP Compare (
- Seite 894 und 895: CMPSS—Scalar Single-FP Compare (
- Seite 896 und 897: CMPSS—Scalar Single-FP Compare (
- Seite 898 und 899: COMISS—Scalar Ordered Single-FP C
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unpack High Packed Data<br />
オペコード 命令 説明<br />
0F 68 /r PUNPCKHBW mm, mm/m64 mm および mm/m64 からの上位バイトを mm にインタ<br />
リーブする。<br />
0F 69 /r PUNPCKHWD mm, mm/m64 mm および mm/m64 からの上位ワードを mm にインタ<br />
リーブする。<br />
0F 6A /r PUNPCKHDQ mm, mm/m64 mm および mm/m64 からの上位ダブルワードを mm にイ<br />
ンタリーブする。<br />
説明<br />
デステ ィ ネーシ ョ ン ・ オペラン ド ( 第 1 オペラン ド ) とソース・オペランド ( 第 2 オペラ<br />
ンド ) の上位デー タ要素 ( バイ ト、 ワー ド、 またはダブルワー ド ) をデステ ィ ネーシ ョ<br />
ン・オペランドにアンパックしてインタリーブする( 図 2-22 を参照 )。 下位データ要素<br />
は無視される。 デスティネーション・オペランドは、 MMX テクノロジ ・ レジスタでな<br />
ければならない。 ソ ース ・ オペラン ド には、 MMX テクノロジ ・ レジスタまたは 64 ビッ<br />
トのメモリ ・ ロケーションを使用できる。 ソース ・データがメモリ ・ オペランドからで<br />
ある と きは、 64 ビッ トのオペランドすべてがメモリからアクセスされるが、 命令は上位<br />
32 ビ ッ ト だけ を使用す る。<br />
図 2-22. PUNPCKHBW 命令での上位バイトのアンパックとインタリーブ<br />
PUNPCKHBW mm, mm/m64<br />
mm/m64<br />
27 26 25 24 23 22 21 20 17 16 15 14<br />
13 12 11 10<br />
27 17 26 16 25 15 24 14<br />
mm<br />
3006031<br />
PUNPCKHBW 命令は、 ソ ー ス ・ オペラ ン ド の 4 上位バイ ト と デス テ ィ ネ ー シ ョ ン ・ オペ<br />
ランドの 4 上位バイ ト を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド<br />
に書き込む。<br />
PUNPCKHWD 命令は、 ソ ー ス ・ オペラ ン ド の 2 上位ワ ー ド と デス テ ィ ネ ー シ ョ ン ・ オペ<br />
ランドの 2 上位ワ ー ド を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド<br />
に書き込む。<br />
PUNPCKHDQ 命令は、 ソース ・ オペランドの上位ダブルワー ド とデスティネーション ・<br />
オペランドの上位ダブルワードをインタリ ーブして、 それらをデスティネーション ・ オ<br />
ペラン ド に書き込む。<br />
ソ ー ス ・ オペラ ン ド がすべてゼ ロ である場合、 ( デステ ィ ネーシ ョ ン ・ オペラン ド にス ト<br />
アされる ) 結果は、 デステ ィ ネ ー シ ョ ン ・ オペラン ド の元の値の上位デー タ要素がゼロ<br />
拡張 さ れた も のにな る。 PUNPCKHBW 命令では、 上位バイ ト がゼ ロ拡張され ( すなわ<br />
ち、 符号なしワー ド にアンパッ ク される )、 PUNPCKHWD 命令では、 上位ワ ー ド がゼ ロ<br />
拡張 さ れる ( 符号なしダブルワ ー ド にアンパ ッ ク さ れる )。<br />
3:838 第 3 巻 : IA-32 MMX ® テクノロジ命令リファレンス<br />
mm