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.

LDS/LES/LFS/LGS/LSS—Load Far Pointer<br />

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

C5 /r LDS r16,m16:16 メモリから DS:r16 に far ポインタをロードする。<br />

C5 /r LDS r32,m16:32 メモリから DS:r32 に far ポインタをロードする。<br />

0F B2 /r LSS r16,m16:16 メモリから SS:r16 に far ポインタをロードする。<br />

0F B2 /r LSS r32,m16:32 メモリから SS:r32 に far ポインタをロードする。<br />

C4 /r LES r16,m16:16 メモリから ES:r16 に far ポインタをロードする。<br />

C4 /r LES r32,m16:32 メモリから ES:r32 に far ポインタをロードする。<br />

0F B4 /r LFS r16,m16:16 メモリから FS:r16 に far ポインタをロードする。<br />

0F B4 /r LFS r32,m16:32 メモリから FS:r32 に far ポインタをロードする。<br />

0F B5 /r LGS r16,m16:16 メモリから GS:r16 に far ポインタをロードする。<br />

0F B5 /r LGS r32,m16:32 メモリから GS:r32 に far ポインタをロードする。<br />

説明<br />

第 2 オペラン ド ( ソース・オペランド ) からセグメント ・ レジスタおよび第1 オペラン<br />

ド ( デステ ィ ネーシ ョ ン ・ オペラン ド ) に far ポインタ ( セグメン ト ・ セレ ク タ と オフ<br />

セッ ト ) をロー ドする。 ソース ・ オペラン ド には、 オペラン ド ・ サイズ属性の現在の設<br />

定 (32 ビッ トまたは16 ビッ ト ) に応じて、 48 ビッ トまたは32 ビッ トのメモリ内ポイン<br />

タを指定する。 命令のオペコ ー ド とデステ ィ ネーシ ョ ン ・ オペラン ド には、 セグメン<br />

ト・レジスタ/ 汎用レ ジ ス タ ・ ペアを指定す る。 ソ ー ス ・ オペラ ン ド か ら の 16 ビッ ト ・<br />

セグ メ ン ト ・ セ レ ク タ は、 オペ コ ー ド で暗黙に示 さ れたセグ メ ン ト ・ レ ジ ス タ (DS、 SS、<br />

ES、 FS、 または GS) にロード される。 32 ビッ トまたは16 ビッ トのオフセットは、 デス<br />

テ ィ ネ ー シ ョ ン ・ オペラ ン ド で指定 さ れたレ ジ ス タ に ロ ー ド さ れる。<br />

こ れ ら の命令の 1 つを保護モー ド で実行した場合は、 ソ ー ス ・ オペラ ン ド のセグ メ ン<br />

ト・セレクタが指しているセグメント・ディスクリプタからの追加情報が、選択された<br />

セグメン ト ・ レジスタの見えない部分にロー ド される。<br />

保護モー ド で も 、 保護例外を発生さ せる こ と な く 、 DS、 ES、 FS、 または GS レジスタに<br />

NULL セレクタ (0000 ~ 0003 の値 ) をロー ドできる。 ( ロ ー ド さ れる と 、 以降は、 対応<br />

するセグメン ト ・ レジスタに NULL セレクタがロー ド されているセグメント を参照しよ<br />

う と する と 、 必ず一般保護例外 (#GP) が発生し、 そのセグ メン ト へのメモ リ 参照は行わ<br />

れない。 )<br />

操作<br />

IF ProtectedMode<br />

THEN IF SS is loaded<br />

THEN IF SegementSelector = null<br />

THEN #GP(0);<br />

FI;<br />

ELSE IF Segment selector index is not within descriptor table limits<br />

OR Segment selector RPL ≠ CPL<br />

OR Access rights indicate nonwritable data segment<br />

OR DPL ≠ CPL<br />

THEN #GP(selector);<br />

FI;<br />

ELSE IF Segment marked not present<br />

THEN #SS(selector);<br />

FI;<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!