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

日々勉強中。。。

0から作るOS開発

環境準備

環境設定

ブートローダ

カーネルローダ

GRUB

カーネル

ドライバーその他

Tips IA32(x86)汎用命令一覧 Tから始まる命令 TEST命令

IA32(x86)汎用命令一覧

このサイトで挙げる命令は汎用命令の一覧となります

調べたい命令の頭文字をクリックすると、表の下に詳細が表示されます
IA32(x86)汎用命令一覧
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 補足


Tから始まる命令

クリックすると、表の下に詳細が表示されます
Tから始まる命令一覧
命令 代表命令の説明
(英語)
代表命令の説明
(日本語)
TEST Logical Compare AND演算を実行し、結果にしたがってEFLAGSのフラグを設定する


TEST命令(Logical Compare)

TEST命令
オペコード 命令 説明
0xA8 ib TEST AL, imm8 imm8とALとのANDをとり、結果に従ってSF、ZF、PFを設定します
0xA9 iw TEST AX, imm16 imm16とAXとのANDをとり、結果に従ってSF、ZF、PFを設定します
0xA9 id TEST EAX, imm32 imm32とEAXとのANDをとり、結果に従ってSF、ZF、PFを設定します
0xF6 /0 ib TEST r/m8, imm8 imm8とr/m8とのANDをとり、結果に従ってSF、ZF、PFを設定します
0xF7 /0 iw TEST r/m16, imm16 imm16とr/m16とのANDをとり、結果に従ってSF、ZF、PFを設定します
0xF7 /0 id TEST r/m32, imm32 imm32とr/m32とのANDをとり、結果に従ってSF、ZF、PFを設定します
0x84 /r TEST r/m8, r8 r8とr/m8とのANDをとり、結果に従ってSF、ZF、PFを設定します
0x85 /r TEST r/m16, r16 r16とr/m16とのANDをとり、結果に従ってSF、ZF、PFを設定します
0x85 /r TEST r/m32, r32 r32とr/m32とのANDをとり、結果に従ってSF、ZF、PFを設定します


詳細

第1オペランド(読み込み元1)とら第2オペランド(読み込み元2)との間のビット単位のAND(論理積)演算を

実行し、結果に従ってSF、ZF、PFを設定します。AND演算結果はその後捨てられます

操作


    temp = 読み込み元1 & 読み込み元2;
    SF = MSB( temp );
    if( temp == 0 )
    {
        ZF = 1;
    }
    else
    {
        ZF = 0;
    }
    PF = BitwiseXNOR( temp );
    CF = 0;
    OF = 0;

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

影響のあるEFLAGSレジスタのフラグ
フラグ 説明
ID -
VIP -
VIF -
AC -
VM -
RF -
NT -
IOPL -
OF 0にセットされます
DF -
IF -
TF -
SF 結果に従って格納されます
ZF 結果に従って格納されます
AF 未定義
PF 結果に従って格納されます
CF 0にセットされます


inserted by FC2 system