• 検索結果がありません。

影響を受けるフラグ

タスクスイッチが行われた場合はすべてのフラグが影響を受け、タスクスイッチが行われ

オペコード 命令 64

ビット モード

互換/ レガシー モード

説明

E8 cw CALL rel16 N.S. 有効 相対nearコール、次の命令とディスプ

レースメント相対。64ビットモードで は未サポート。

E8 cd CALL rel32 有効 有効 相対nearコール、次の命令とディスプ

レースメント相対。64ビットモードで は、64ビットに符号拡張された32ビッ トのディスプレースメント。

FF /2 CALL r/m16 N.E. 有効 絶対間接nearコール、r/m16でアドレ

スを指定。

FF /2 CALL r/m32 N.E. 有効 絶対間接nearコール、r/m32でアドレ

スを指定。64ビットモードでは、64 ビットに符号拡張された32ビットの ディスプレースメント。

FF /2 CALL r/m64 有効 N.E. 絶対間接nearコール、r/m64でアドレ

スを指定。

9A cd CALL ptr16:16 無効 有効 絶対farコール、オペランドでアドレス

を指定。

9A cp CALL ptr16:32 無効 有効 絶対farコール、オペランドでアドレス

を指定。

FF /3 CALL m16:16 有効 有効 絶対間接farコール、m16:16でアドレス

を指定。

32ビットモードの場合、セレクタの指 示先がゲートであれば、RIPはゼロ拡張 された32ビットのディスプレースメン トであり、ゲートから取得される。指示 先がゲートでなければ、RIPはゼロ拡張 された16ビットのオフセットであり、

命令で参照されるfarポインタから取得 される。

FF /3 CALL m16:32 有効 有効 64ビットモードの場合、セレクタの指

示先がゲートであれば、RIP64ビッ トのディスプレースメントであり、ゲー トから取得される。指示先がゲートでな ければ、RIPはゼロ拡張された32ビッ トのオフセットであり、命令で参照され farポインタから取得される。

FF /3 CALL m16:64 有効 N.E. 64ビットモードの場合、セレクタの指

示先がゲートであれば、RIP64ビッ トのディスプレースメントであり、ゲー トから取得される。指示先がゲートでな ければ、RIP64ビットのオフセット であり、命令で参照されるfarポインタ から取得される。

64

ビットモードでの操作 命令が

64

ビットに拡張される。

デフォルトの操作サイズは

32

ビットである。

32

ビットのディスプレースメントは

64

ビットに符号拡張される。

保護モード例外

#GP(0)

デスティネーション・オペランド内のターゲット・オフセットが新

しいコード・セグメントの範囲外の場合。

デスティネーション・オペランド内のセグメント・セレクタが

NULL

の場合。

ゲート内のコード・セグメント・セレクタが

NULL

の場合。

メモリ・オペランドの実効アドレスが

CS

DS

ES

FS

、または

GS

セグメントの範囲外の場合。

DS、ES、FS、または GS

レジスタを使用してメモリにアクセスした が、その内容が

NULL

セグメント・セレクタであった場合。

#GP

(セレクタ) コード・セグメント、ゲート、または

TSS

のセレクタ・インデック スが記述子テーブルの範囲外の場合。

デスティネーション・オペランドにあるセグメント・セレクタの指 示先のセグメント記述子がコンフォーミング・コード・セグメント、

非コンフォーミング・コード・セグメント、コールゲート、タスク ゲート、またはタスク・ステート・セグメントのいずれのものでも なかった場合。

非コンフォーミング・コード・セグメントの

DPL

CPL

に等しく ないか、またはセグメントのセグメント・セレクタの

RPL

CPL

より大きい場合。

コンフォーミング・コード・セグメントの

DPL

CPL

より大きい 場合。

コールゲート、タスクゲート、または

TSS

のセグメント記述子から の

DPL

が、

CPL

、またはコールゲート、タスクゲート、または

TSS

のセグメント・セレクタの

RPL

より小さい場合。

コールゲートからのセグメント・セレクタのセグメント記述子が、

そのコールゲートがコード・セグメントであることを示していない 場合。

コールゲートからのセグメント・セレクタが記述子テーブルの範囲 外の場合。

コールゲートから得られたコード・セグメントの

DPL

CPL

より 大きい場合。

TSS

のセグメント・セレクタのローカル

/

グローバル・ビットが ローカルとしてセットされている場合。

TSS

のセグメント記述子が、

TSS

がビジーであるか、または使用不 可能であることを示している場合。

#SS(0)

スタックスイッチが行われなかったときに、リターンアドレス、パ

ラメータ、またはスタック・セグメント・ポインタをスタックに

メモリ・オペランドの実効アドレスが

SS

セグメントの範囲外の場 合。

#SS

(セレクタ) スタックスイッチが行われたときに、リターンアドレス、パラメー タ、またはスタック・セグメント・ポインタをスタックにプッシュ した結果、スタック・セグメントの範囲を超えた場合。

スタックスイッチの一環として

SS

レジスタへのロードが行われよ うとするとき、指示先のセグメントが存在しないとマークされてい た場合。

スタックスイッチが行われたとき、リターンアドレス、パラメータ、

またはスタック・セグメント・ポインタをストアするための余裕が スタック・セグメントにない場合。

#NP

(セレクタ) コード・セグメント、データ・セグメント、スタック・セグメント、

コールゲート、タスクゲート、または

TSS

が存在しない場合。

#TS

(セレクタ) 新しいスタック・セグメント・セレクタと

ESP

TSS

の終りを超え ている場合。

新しいスタック・セグメント・セレクタが

NULL

の場合。

TSS

内の新しいスタック・セグメント・セレクタの

RPL

がアクセス 先のコード・セグメントの

DPL

と等しくない場合。

新しいスタック・セグメント用のスタック・セグメント記述子の

DPL

がコード・セグメント記述子の

DPL

と等しくない場合。

新しいスタック・セグメントが書き込み可能なデータ・セグメント でない場合。

スタック・セグメントのセグメント・セレクタ・インデックスが記 述子テーブルの範囲外の場合。

#PF

(フォルトコード) ページフォルトが発生した場合。

#AC(0)

アライメント・チェックがイネーブルにされていて、現行特権レベ

ルが

3

のときにアライメントが合わないメモリ参照を行った場合。

実アドレスモード例外

#GP

メモリ・オペランドの実効アドレスが

CS

DS

ES

FS

、または

GS

セグメントの範囲外の場合。

ターゲット・オフセットがコード・セグメントの範囲外の場合。

仮想

8086

モード例外

#GP(0)

メモリ・オペランドの実効アドレスが

CS

DS

ES

FS

、または

GS

セグメントの範囲外の場合。

ターゲット・オフセットがコード・セグメントの範囲外の場合。

#PF

(フォルトコード) ページフォルトが発生した場合。

#AC(0)

アライメント・チェックがイネーブルにされていて、アライメント

が合わないメモリ参照を行った場合。

互換モード例外

64

64

ビットモード例外

#GP(0)

メモリアドレスが非標準の場合。

デスティネーション・オペランド内のターゲット・オフセットが非 標準の場合。

デスティネーション・オペランド内のターゲット・オフセットが新 しいコード・セグメントの範囲外の場合。

デスティネーション・オペランド内のセグメント・セレクタが

NULL

の場合。

64

ビットゲート内のコード・セグメント・セレクタが

NULL

の場 合。

メモリ・オペランドの実効アドレスが

CS、DS、ES、FS、または GS

セグメントの範囲外の場合。

DS

ES

FS

、または

GS

レジスタを使用してメモリにアクセスした が、その内容が

NULL

セグメント・セレクタであった場合。

#GP

(セレクタ) コード・セグメントまたは

64

ビット・コール・ゲートが記述子テー ブルの範囲外の場合。

コード・セグメントまたは

64

ビット・コール・ゲートが非標準領域 に重複する場合。

デスティネーション・オペランドにあるセグメント・セレクタの指 示先のセグメント記述子がコンフォーミング・コード・セグメント、

非コンフォーミング・コード・セグメント、

64

ビット・コール・

ゲートのいずれのものでもなかった場合。

デスティネーション・オペランドにあるセグメント・セレクタの指 示先のセグメント記述子がコード・セグメントであり、Dビットと

L

ビットの両方がセットされている場合。

非コンフォーミング・コード・セグメントの

DPL

CPL

に等しく ないか、またはセグメントのセグメント・セレクタの

RPL

CPL

より大きい場合。

コンフォーミング・コード・セグメントの

DPL

CPL

より大きい 場合。

64

ビット・コール・ゲートからの

DPL

が、

CPL

、または

64

ビッ ト・コール・ゲートの

RPL

より小さい場合。

64

ビット・コール・ゲートの上位タイプ・フィールドが

0

でない場 合。

64

ビット・コール・ゲートからのセグメント・セレクタが記述子 テーブルの範囲外の場合。

64

ビット・コール・ゲートから得られたコード・セグメントの

DPL

CPL

より大きい場合。

64

ビットゲートにあるセレクタの指示先のコード・セグメント記述 子で、Lビットがセットされておらず、Dビットがクリアされてい ない場合。

64

ビット・コール・ゲートからのセグメント・セレクタのセグメン ト記述子が、そのコールゲートがコード・セグメントであることを

#SS(0)

スタックスイッチが行われなかったときに、リターン・オフセット または

CS

セレクタをスタックにプッシュした結果、スタック・セ グメントの範囲を超えた場合。

メモリ・オペランドの実効アドレスが

SS

セグメントの範囲外の場 合。

スタックアドレスが非標準形式の場合。

#SS

(セレクタ) スタックスイッチが行われたときに、SSセレクタ、スタックポイン タ、EFLAGS、CSセレクタ、オフセット、またはエラーコードの古 い値をスタックにプッシュした結果、標準の境界に違反した場合。

#NP

(セレクタ) コード・セグメントまたは

64

ビット・コール・ゲートが存在しない 場合。

#TS

(セレクタ) 新しい

RSP

のロードが

TSS

の範囲を超えている場合。

#UD

64

ビットモードのみ)

far

コールがメモリ内の絶対アドレスを直接 指定している場合。

#PF

(フォルトコード) ページフォルトが発生した場合。

#AC(0)

アライメント・チェックがイネーブルにされていて、現行特権レベ

ルが

3

のときにアライメントが合わないメモリ参照を行った場合。

関連したドキュメント