16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

LTR—Load Task Register<br />

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

0F 00 /3 LTR r/m16 r/m16 を TR( タスク・レジスタ ) にロードする。<br />

説明<br />

ソース ・オペランドをタスク ・ レジスタのセグメント ・セレクタ ・ フィールドにロード<br />

する。 ソース ・ オペランド ( 汎用レ ジ ス タ ま たは メモ リ ・ ロ ケ ー シ ョ ン ) の内容は、 タ<br />

スク ・ステート ・セグメント (TSS) を指示先とするセグメン ト ・ セレ ク タである。 セグ<br />

メン ト ・ セレクタがタスク ・ レジスタにロー ド された後に、 プロセッサはそのセグメン<br />

ト・セレクタを使用して、グローバル・ディスクリプタ・テーブル(GDT) 内にある TSS<br />

のセグメン ト ・ デ ィ ス ク リ プタの位置を探す。 次に、 セグメン ト ・ デ ィ スク リ プタから<br />

タスク ・ レジスタに TSS のセグメン ト 範囲とベース ・ ア ド レスをロー ド する。 タスク ・<br />

レ ジス タの指示先のタス ク はビ ジ ー と マー ク されが、 そのタ ス ク への切 り 替えは行われ<br />

ない。<br />

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

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

が 0 のときは保護モードでしか実行することができない。 LTR 命令は、 最初に実行され<br />

るタスクを設定する初期化コー ドでよ く使用される。<br />

オペラン ド ・ サイズ属性は、 この命令に影響を与えない。<br />

操作<br />

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

IF SRC(Offset) > descriptor table limit OR IF SRC(type) ≠ global<br />

THEN #GP(segment selector);<br />

FI;<br />

Reat segment descriptor;<br />

IF segment descriptor is not for an available TSS THEN #GP(segment selector); FI;<br />

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

TSSsegmentDescriptor(busy) ← 1;<br />

(* Locked read-modify-write operation on the entire descriptor when setting busy flag *)<br />

TaskRegister(SegmentSelector) ← SRC;<br />

TaskRegister(SegmentDescriptor) ← TSSSegmentDescriptor;<br />

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

なし。<br />

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

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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!