16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

LSL—Load Segment Limit<br />

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

0F 03 /r LSL r16,r/m16 "r16 ← セグメント範囲、セレクタ r/m16 " のロードを行う。<br />

0F 03 /r LSL r32,r/m32 "r32 ← セグメント範囲、セレクタ r/m32 " のロードを行う。<br />

説明<br />

スクランブルされていないセグメント範囲を第2オペラン ド ( ソース ・ オペランド ) で<br />

指定 さ れたセグ メ ン ト ・ デ ィ ス ク リ プ タ か ら 第 1 オペラン ド ( デステ ィ ネーシ ョ ン ・ オ<br />

ペラン ド ) にロー ドし、 EFLAGS レジスタ内のZF フラグをセットする。 ソース ・ オペラ<br />

ンド ( レジスタまたはメモリ ・ ロケーション ) の内容は、 ア ク セス されるセグ メン ト ・<br />

ディスクリプタのセグメント ・セレクタである。 デスティネーション・オペランドは、<br />

汎用レ ジ ス タ である。<br />

プロセッサは、 ロー ド ・ プロセスの一環としてアクセス ・ チェ ッ クを行う。 デスティ<br />

ネーション ・ レジスタにロード されると、 ソフ ト ウェアはセグメント範囲をポインタの<br />

オフセッ ト と比較できる。<br />

セグメン ト範囲は、 セグメン ト ・ ディ スク リ プタのバイ ト 0 と 1、 バイ ト 6 の最初の 4<br />

ビッ トを含む20 ビ ッ ト の値であ る。 デ ィ ス ク リ プ タ のセグ メ ン ト 範囲がバイ ト を最小単<br />

位とする ( グラニュラリティ ・ フラグが 0 にされている ) 場合は、 デス テ ィ ネ ー シ ョ ン ・<br />

オペラン ド にバイ ト 単位値 ( バイ ト範囲 ) がロー ド される。 ディ スク リプタのセグメン<br />

ト 範囲がペー ジ を最小単位 と する ( グラニュラ リティ ・ フラグが 1 にセッ ト されている )<br />

場合は、 LSL 命令はセグ メ ン ト 範囲をペー ジ単位範囲 ( ページ範囲 ) からバイ ト範囲に<br />

変換してか ら 、 それをデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に ロ ー ド す る。 こ の変換は、 20<br />

ビッ トの 「生」 の範囲を左に12 ビッ トシフトし、 下位12 ビットを1 で埋めて行われる。<br />

オペラン ド ・ サイズが 32 ビッ トのときは、 32 ビッ トのバイト範囲がデスティネーショ<br />

ン・オペランドにストアされる。 オペランド ・サイズが16 ビ ッ ト の と き は、 有効な 32<br />

ビッ トのバイト範囲が計算されるが、 上位16 ビッ トは切り捨てられ、 下位16 ビットだ<br />

けがデステ ィ ネーシ ョ ン ・ オペラン ド にロー ド される。<br />

この命令では、 セグメント範囲をデスティネーション・レジスタにロードする前に以下<br />

のチェ ッ クを行う。<br />

• セグメン ト ・ セレ ク タが NULL でないこ と を確認する。<br />

• セグ メ ン ト ・ セ レ ク タ の指示先がア ク セス さ れる GDT または LDT の範囲内のデ ィ<br />

スクリプタであることを確認する。<br />

• デ ィ ス ク リ プ タ の タ イ プが こ の命令に対して有効であ る こ と を確認する。 LSL 命令<br />

に対しては、 すべてのコ ー ド ・ セグメン ト ・ デ ィ スク リ プタ とデー タ ・ セグメン ト ・<br />

ディスクリプタが有効である( すなわち LSL 命令でア ク セスで き る )。 有効な特殊な<br />

セグメントおよびゲートのディスクリプタ・タイプが下記の表に示している。<br />

• セグ メ ン ト が コ ン フ ォ ー ミ ン グ ・ コ ー ド ・ セグ メ ン ト でない場合は、 こ の命令は指<br />

定されたセグメント ・ ディスク リプタが CPL でアクセスでき る ( すなわち、 CPL と<br />

セグメン ト ・ セレ ク タの RPL がセグメン ト ・ セレ ク タの DPL 以下である ) かを確認<br />

する。<br />

セグメン ト ・ ディ スク リ プタがアクセスできないか、 またはこの命令に と って無効なタ<br />

イプである場合は、 ZF フ ラ グが ク リ ア さ れ、 値は何 も デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド<br />

にロー ド されない。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!