0から作るソフトウェア開発

日々勉強中。。。

0から作るOS開発

環境準備

環境設定

ブートローダ

カーネルローダ

GRUB

カーネル

ドライバーその他

Tips IA32 MMX命令一覧 Pから始まる命令 PXOR命令

IA32 MMX命令一覧

このサイトで挙げる命令はMMX命令の一覧となります。MMXは64ビットの個別要素の整数データ処理を

行います。IA-32アーキテクチャ以降で追加された機能となりますが、IA-32より前のプログラムとの

互換性を維持しています

調べたい命令の頭文字をクリックすると、表の下に詳細が表示されます
IA32 MMX命令一覧
A B C D E F G H
I J K L M N O P
Q R S T U V W X
Y Z 補足


Pから始まる命令

クリックすると、表の下に詳細が表示されます
Pから始まる命令一覧
命令 代表命令の説明
(英語)
代表命令の説明
(日本語)
PACKSSWB/PACKSSDW Pack Word to Byte data(Signed with Saturation) 符号拡張して、符号付きのデータ結合を行います
PACKUSWB Pack Word to Byte data(Unsigned with Saturation) 符号無しの拡張をして、符号無しのデータ結合を行います
PADDB/PADDW/PADDD Add with wrap-around 加算を行います
PADDSB/PADDSW Add Signed with saturation 符号付き加算を行います
PADDUSB/PADDUSW Add UnSigned with saturation 符号無し加算を行います
PAND bitwise AND 論理積演算を行います
PANDN bitwise ANDNot 否定論理積演算を行います
PCMPEQB/PCMPEQW/PCMPEQD Packed CoMpare for EQuality データが等しいか比較します
PCMPGTB/PCMPGTW/PCMPGTD Packed CoMpare for GreaTer(signed) データがより大きいか比較します
PMADDWD Packed Multiply ADD ワード単位で乗算し、結果をダブルワード単位で加算します
PMULHUW Packed MULtiplication, store High Word(Unsigned) ワード単位で符号なし乗算し、結果を上位ワードから順に格納します
PMULHW Packed MULtiplication, store High Word ワード単位で符号付き乗算し、結果を上位ワードから順に格納します
PMULLW Packed MULtiplication, store Low Word ワード単位で符号あり乗算し、結果を下位ワードから順に格納します
POR bitwise OR 論理和演算を行います
PSLLW/PSLLD/PSLLQ Packed Shift Left Logical 左ビットシフトを行い、下位をゼロで埋めます
PSRAW/PSRAD Packed Shift Right Arithmetic 右ビットシフトを行い、上位を符号ビットで埋めます
PSRLW/PSRLD/PSRLQ Packed Shift Right Logical 右ビットシフトを行い、上位をゼロで埋めます
PSUBB/PSUBW/PSUBD Subtract with wrap-around 減算を行います
PSUBSB/PSUBSW Subtract signed with Saturation 符号あり減算を行い、結果以外をゼロで埋めます
PSUBUSB/PSUBUSW Subtract Unsigned with Saturation 符号なし減算を行い、結果以外をゼロで埋めます
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ Unpack High data to next larger type 指定されたオペランドのデータの上位ワードを、上位から順にバイト単位で交互に並べ直します
PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ Unpack Low data to next larger type 指定されたオペランドのデータの下位ワードを、下位から順にバイト単位で交互に並べ直します
PXOR bitwise XOR 排他的論理和演算を行います


PXOR命令(bitwise XOR)

PXOR命令
オペコード 命令 説明
0x0F 0xEF /r PXOR mm, mm/m64 mm/m64とmmのビット単位のXOR演算を実行する
0x66 0x0F 0xEF /r PXOR xmm1, xmm2/m128 xmm2/m128とxmm1のビット単位のXOR演算を実行する


詳細

読込元オペランド(第2オペランド)と格納先オペランド(第1オペランド)とのXOR演算を実行し、

結果を格納先オペランド(第1オペランド)に格納します。読込元オペランド(第2オペランド)には

MMXレジスター、64ビットデータのメモリーアドレス、XMMレジスターか128ビットデータのメモリーアドレスが

使用できます。格納先オペランド(第1オペランド)には、MMXレジスターまたはXMMレジスターを指定する

必要があります。各ビットのXOR演算の結果は、格納先オペランド(第1オペランド)と読込元オペランド

(第2オペランド)の対応するビットが異なる場合は1にセットされ、同じ場合はゼロが

セットされます。

影響のあるEFLAGSレジスタのフラグ

影響のあるEFLAGSレジスタのフラグ
フラグ 説明
ID -
VIP -
VIF -
AC -
VM -
RF -
NT -
IOPL -
OF -
DF -
IF -
TF -
SF -
ZF -
AF -
PF -
CF -


inserted by FC2 system