影響を受けるフラグ
タスクスイッチが行われた場合はすべてのフラグが影響を受け、タスクスイッチが行われ
オペコード 命令 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ビットモードの場合、セレクタの指
示先がゲートであれば、RIPは64ビッ トのディスプレースメントであり、ゲー トから取得される。指示先がゲートでな ければ、RIPはゼロ拡張された32ビッ トのオフセットであり、命令で参照され るfarポインタから取得される。
FF /3 CALL m16:64 有効 N.E. 64ビットモードの場合、セレクタの指
示先がゲートであれば、RIPは64ビッ トのディスプレースメントであり、ゲー トから取得される。指示先がゲートでな ければ、RIPは64ビットのオフセット であり、命令で参照される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)
アライメント・チェックがイネーブルにされていて、現行特権レベルが