EFLAGS

読み:イーフラグス
外語:EFLAGS 英語
品詞:名詞

IA-32におけるフラグレジスター

目次

80286までの頃の16ビットFLAGSの上位互換で、下位16ビットはFLAGSと同じまま、32ビットに拡張された。

なお、AMD64以降では更に64ビットに拡張されRFLAGSと呼ばれている。

フラグレジスターは汎用レジスターとは異なる扱いとなっていて、操作には専用の命令が必要である。

フラグレジスター制御のために、次の命令がある。

  • pushf (8086互換、EFLAGSの下位16ビットをスタックにPUSH)
  • pushfd (EFLAGSをスタックにPUSH)
  • popf (8086互換、EFLAGSの下位16ビットをスタックからPOP)
  • popfd (EFLAGSをスタックからPOP)
  • sahf (AH→EFLAGSの下位8ビット)
  • lahf (EFLAGSの下位8ビット→AH)
  • clc (CF=0)
  • cld (DF=0)
  • cli (IF=0)
  • cmc (CF=CF)
  • stc (CF=1)
  • std (DF=1)
  • sti (IF=1)

このほか、比較命令や条件ジャンプ命令、演算命令等により、フラグレジスターは変更ないし参照される。

全32ビット構成で、具体的なビット構成は次のとおり。

ビット名称機能
0CFキャリーフラグ
111 (未使用)
2PFパリティフラグ (演算結果の下位8ビット)
300 (未使用)
4AF補助キャリーフラグ(BCD演算用)
500 (未使用)
6ZFゼロフラグ
7SFサインフラグ
8TFトラップフラグ、トレースフラグ
9IF割り込みフラグ
10DFディレクションフラグ
11OFオーバーフローフラグ
12IOPLI/O特権レベル
13
14NTネストタスクフラグ
1500 (未使用)
16RFデバッグレジスターの命令ブレイクポイントを(1回のみ)無効にする
17VM1=仮想86モード
18AC変更可能であれば、i486Pentium以降のCPUである
19VIF仮想割り込みフラグ (Pentium以降)
20VIP仮想割り込みペンディングフラグ (Pentium以降)
21ID変更可能であれば、CPUID命令に対応している
2200 (未使用)
31

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club