24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

SIDT—Store Interrupt Descriptor Table Register 「SGDT/SIDT」 を参照のこ と。 3:746 第 3 巻 : IA-32 基本命令リファレンス

SLDT—Store Local Descriptor Table Register オペコード 命令 説明 0F 00 /0 SLDT r/m16 セグメント・セレクタを LDTR から r/m16 にストアする。 0F 00 /0 SLDT r/m32 セグメント・セレクタを LDTR から r/m32 の下位 16 ビットにスト アする。上位 16 ビットは未定義。 説明 セグメン ト ・ セレ ク タをローカル ・ ディ スク リ プタ ・ テーブル ・ レジスタ (LDTR) から デステ ィ ネーシ ョ ン ・ オペラン ド にス ト アする。 デステ ィ ネーシ ョ ン ・ オペラン ド には、 汎用レ ジ ス タ ま たは メ モ リ ・ ロ ケ ー シ ョ ン を使用で き る。 こ の命令でス ト ア さ れる セグ メン ト ・ セレクタは LDT を指す。 デステ ィ ネーシ ョ ン ・ オペラン ドが 32 ビッ ト ・レジスタであるときは、 16 ビットのセ グメント ・セレクタがレジスタの下位16 ビットにコピーされる。 レジスタの上位16 ビッ トは0 にク リアされる。 デスティネーション ・ オペランドがメモリ ・ ロケーション であるときは、 セグメント ・セレクタは、 オペランド ・サイズに関係なく、 16 ビット幅 でメモリに書き込まれる。 SLDT 命令は、 オペレーテ ィング ・ システム ・ ソフ ト ウェアだけに有用であるが、 アプ リ ケー シ ョ ン ・ プログラ ムで使用でき る。 また、 この命令は保護モー ド でのみ実行でき る。 操作 IF Itanium System Environment THEN IA-32_Intercept(INST,SLDT); DEST ← LDTR(SegmentSelector); 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 IA-32_Intercept SLDT 命令に よ っ て IA-32 イ ン タ ー セプ ト が発生す る。 保護モード例外 #GP(0) デステ ィ ネー シ ョ ンが書き込み不可能なセグメ ン ト にある 場合。 メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 DS、 ES、 FS、 GS レジスタを使用してメモ リ がアクセス さ れ、 レ ジ ス タ の内容が NULL セグメン ト ・ セレク タで あった場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが イネーブルにされていて、 アライメントが合わないメモリ 参照が行われた場合。 第 3 巻 : IA-32 基本命令リファレンス 3:747

SLDT—Store Local Descriptor Table Register<br />

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

0F 00 /0 SLDT r/m16 セグメント・セレクタを LDTR から r/m16 にストアする。<br />

0F 00 /0 SLDT r/m32 セグメント・セレクタを LDTR から r/m32 の下位 16 ビットにスト<br />

アする。上位 16 ビットは未定義。<br />

説明<br />

セグメン ト ・ セレ ク タをローカル ・ ディ スク リ プタ ・ テーブル ・ レジスタ (LDTR) から<br />

デステ ィ ネーシ ョ ン ・ オペラン ド にス ト アする。 デステ ィ ネーシ ョ ン ・ オペラン ド には、<br />

汎用レ ジ ス タ ま たは メ モ リ ・ ロ ケ ー シ ョ ン を使用で き る。 こ の命令でス ト ア さ れる セグ<br />

メン ト ・ セレクタは LDT を指す。<br />

デステ ィ ネーシ ョ ン ・ オペラン ドが 32 ビッ ト ・レジスタであるときは、 16 ビットのセ<br />

グメント ・セレクタがレジスタの下位16 ビットにコピーされる。 レジスタの上位16<br />

ビッ トは0 にク リアされる。 デスティネーション ・ オペランドがメモリ ・ ロケーション<br />

であるときは、 セグメント ・セレクタは、 オペランド ・サイズに関係なく、 16 ビット幅<br />

でメモリに書き込まれる。<br />

SLDT 命令は、 オペレーテ ィング ・ システム ・ ソフ ト ウェアだけに有用であるが、 アプ<br />

リ ケー シ ョ ン ・ プログラ ムで使用でき る。 また、 この命令は保護モー ド でのみ実行でき<br />

る。<br />

操作<br />

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

DEST ← LDTR(SegmentSelector);<br />

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

なし。<br />

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

IA-32_Intercept SLDT 命令に よ っ て IA-32 イ ン タ ー セプ ト が発生す る。<br />

保護モード例外<br />

#GP(0) デステ ィ ネー シ ョ ンが書き込み不可能なセグメ ン ト にある<br />

場合。<br />

メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />

または GS セグ メ ン ト の範囲外の場合。<br />

DS、 ES、 FS、 GS レジスタを使用してメモ リ がアクセス<br />

さ れ、 レ ジ ス タ の内容が NULL セグメン ト ・ セレク タで<br />

あった場合。<br />

#SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />

囲外の場合。<br />

#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />

#AC(0) 現行特権レベルが 3 のときに、 アライメント ・チェックが<br />

イネーブルにされていて、 アライメントが合わないメモリ<br />

参照が行われた場合。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!