24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

LGS—Load Full Pointer 「LDS/LES/LFS/LGS/LSS」 を参照のこ と。 3:636 第 3 巻 : IA-32 基本命令リファレンス

LLDT—Load Local Descriptor Table Register オペコード 命令 説明 0F 00 /2 LLDT r/m16 セグメント・セレクタ r/m16 を LDTR にロードする。 説明 ソース ・オペランドをローカル・ディスク リプタ ・ テーブル・ レジスタ (LDTR) のセグ メン ト ・ セレクタ ・ フ ィ ールドにロー ドする。 ソース ・ オペランド ( 汎用レ ジ ス タ ま た はメモリ ・ ロケーション ) の内容は、 ロ ー カル ・ デ ィ ス ク リ プタ ・ テ ーブル (LDT) を指 示先とするセグメント ・セレクタである。 セグメント ・セレクタがLDTR にロード され た後に、 プロセッサはそのセグメン ト ・ セレク タを使用して、 グローバル ・ ディ スク リ プタ ・ テーブル (GDT) 内にある LDT のセグメン ト ・ デ ィ スク リ プタの位置を探す。 次 に、 セグメン ト ・ デ ィ ス ク リ プタから LDTR に LDT のセグメン ト 範囲とベース ・ ア ド レ スをロー ドする。 DS、 ES、 SS、 FS、 GS、 CS の各セグメン ト ・ レ ジスタは この命令の影 響を受けない。 現在のタスクに対するタスク ・ ステー ト ・ セグメン ト (TSS) 内の LDTR フィールドも影響を受けない。 ソース ・オペランドが0 である場合は、 LDTR は無効と マー ク され、 LDT 内のデ ィ ス ク リプタへのすべての参照(LAR、 VERR、 VERW、 または LSL 命令に よ る も のを除 く ) に よ っ て一般保護例外 (#GP) が発生する。 オペラン ド ・ サイズ属性は、 この命令には効果を もたない。 LLDT 命令は、 オペレーティング・システム・ ソフトウェアで使用するために設けられ たものであり、 アプリケーション・プログラムでは使用してはならない。 さらに、 この 命令は保護モー ド でしか実行できない。 操作 IF Itanium System Environment THEN IA-32_Intercept(INST,LLDT); IF SRC(Offset) > descriptor table limit THEN #GP(segment selector); FI; Read segment descriptor; IF SegmentDescriptor(Type) ≠ LDT THEN #GP(segment selector); FI; IF segment descriptor is not present THEN #NP(segment selector); LDTR(SegmentSelector) ← SRC; LDTR(SegmentDescriptor) ← GDTSegmentDescriptor; 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 IA-32_Intercept 命令イ ン タ ーセプ ト 。 第 3 巻 : IA-32 基本命令リファレンス 3:637

LLDT—Load Local Descriptor Table Register<br />

オペコード 命令 説明<br />

0F 00 /2 LLDT r/m16 セグメント・セレクタ r/m16 を LDTR にロードする。<br />

説明<br />

ソース ・オペランドをローカル・ディスク リプタ ・ テーブル・ レジスタ (LDTR) のセグ<br />

メン ト ・ セレクタ ・ フ ィ ールドにロー ドする。 ソース ・ オペランド ( 汎用レ ジ ス タ ま た<br />

はメモリ ・ ロケーション ) の内容は、 ロ ー カル ・ デ ィ ス ク リ プタ ・ テ ーブル (LDT) を指<br />

示先とするセグメント ・セレクタである。 セグメント ・セレクタがLDTR にロード され<br />

た後に、 プロセッサはそのセグメン ト ・ セレク タを使用して、 グローバル ・ ディ スク リ<br />

プタ ・ テーブル (GDT) 内にある LDT のセグメン ト ・ デ ィ スク リ プタの位置を探す。 次<br />

に、 セグメン ト ・ デ ィ ス ク リ プタから LDTR に LDT のセグメン ト 範囲とベース ・ ア ド レ<br />

スをロー ドする。 DS、 ES、 SS、 FS、 GS、 CS の各セグメン ト ・ レ ジスタは この命令の影<br />

響を受けない。 現在のタスクに対するタスク ・ ステー ト ・ セグメン ト (TSS) 内の LDTR<br />

フィールドも影響を受けない。<br />

ソース ・オペランドが0 である場合は、 LDTR は無効と マー ク され、 LDT 内のデ ィ ス ク<br />

リプタへのすべての参照(LAR、 VERR、 VERW、 または LSL 命令に よ る も のを除 く ) に<br />

よ っ て一般保護例外 (#GP) が発生する。<br />

オペラン ド ・ サイズ属性は、 この命令には効果を もたない。<br />

LLDT 命令は、 オペレーティング・システム・ ソフトウェアで使用するために設けられ<br />

たものであり、 アプリケーション・プログラムでは使用してはならない。 さらに、 この<br />

命令は保護モー ド でしか実行できない。<br />

操作<br />

IF Itanium System Environment THEN IA-32_Intercept(INST,LLDT);<br />

IF SRC(Offset) > descriptor table limit THEN #GP(segment selector); FI;<br />

Read segment descriptor;<br />

IF SegmentDescriptor(Type) ≠ LDT THEN #GP(segment selector); FI;<br />

IF segment descriptor is not present THEN #NP(segment selector);<br />

LDTR(SegmentSelector) ← SRC;<br />

LDTR(SegmentDescriptor) ← GDTSegmentDescriptor;<br />

影響を受けるフラグ<br />

なし。<br />

追加の Itanium ベース・システム環境例外<br />

IA-32_Intercept 命令イ ン タ ーセプ ト 。<br />

第 3 巻 : IA-32 基本命令リファレンス 3:637

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!