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.

VERR, VERW—Verify a Segment for Reading or Writing<br />

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

0F 00 /4 VERR r/m16 r/m16 で指定されたセグメントを読み取りできる場合 ZF=1 を設定す<br />

る。<br />

0F 00 /5 VERW r/m16 r/m16 で指定されたセグメントに書き込みできる場合 ZF=1 を設定す<br />

る。<br />

説明<br />

ソース ・オペランドで指定されたコード ・セグメント またはデータ ・セグメントが現行<br />

特権レベル (CPL) から読み取り可能(VERR) または書き込み可能(VERW) であるかを検<br />

証する。 ソ ー ス ・ オペラ ン ド は、 検証するセグメン ト のセグメン ト ・ セレ ク タ を も つ 16<br />

ビッ トのレジスタまたはメモリ ・ロケーションである。 セグメントがアクセス可能で読<br />

み取り可能 (VERR) または書き込み可能(VERW) である場合は、 ZF フラグがセット され<br />

る。 そ うでない場合は、 ZF フラグがクリアされる。 コード ・セグメントが書き込み可能<br />

である と検証されない。 このチェ ッ クは、 システム ・ セグメン ト に行う こ と はできない。<br />

ZF フ ラグをセ ッ ト する には、 以下の条件が満た されていなければな ら ない。<br />

• セグメン ト ・ セレ ク タが NULL でない。<br />

• セレクタは、 ディスク リプタ ・ テーブル (GDT または LDT) の範囲内のデ ィ ス ク リ プ<br />

タを指定していなければならない。<br />

• セレクタは、 ( システム ・ セグメン ト またはゲー ト のディ スク リプタではな く ) コー<br />

ド ・セグメント またはデータ ・セグメントのディスク リプタを指定していなければ<br />

ならない。<br />

• VERR命令では、 セグメント は読み取り 可能でなければなら ない。 VERW 命令では、<br />

セグメ ン ト は 書き 込み可能なデー タ ・ セグメ ント でなければなら ない。<br />

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

DPL は、 CPL およびセグメン ト ・セレクタの RPL の両方以上 ( 以下の特権を も つ )<br />

でなければならない。<br />

こ の検証動作は、 セグ メ ン ト が DS、 ES、 FS、 または GS レジスタにロード され、 指定さ<br />

れたアク セス ( 読み取り ま たは書き込み ) が行われた場合 と同じである。 セレ ク タの値<br />

は保護例外を発生 さ せ る こ と はな く 、 ソ フ ト ウ ェ アは起 こ り 得る セグ メ ン ト ・ ア ク セス<br />

問題を前 も っ て処理で き る。<br />

操作<br />

IF SRC(Offset) > (GDTR(Limit) OR (LDTR(Limit))<br />

THEN<br />

ZF ← 0<br />

Read segment descriptor;<br />

IF SegmentDescriptor(DescriptorType) = 0 (* system segment *)<br />

OR (SegmentDescriptor(Type) ≠ conforming code segment)<br />

AND (CPL > DPL) OR (RPL > DPL)<br />

THEN<br />

ZF ← 0<br />

ELSE<br />

IF ((Instruction = VERR) AND (segment = readable))<br />

OR ((Instruction = VERW) AND (segment = writable))<br />

THEN<br />

ZF ← 1;<br />

FI;<br />

FI;<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!