24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

BTS ─ Bit Test and Set オペコード 命令 説明 0F AB BTS r/m16,r16 選択したビットを CF フラグにストアし、セットする。 0F AB BTS r/m32,r32 選択したビットを CF フラグにストアし、セットする。 0F BA /5 ib BTS r/m16,imm8 選択したビットを CF フラグにストアし、セットする。 0F BA /5 ib BTS r/m32,imm8 選択したビットを CF フラグにストアし、セットする。 説明 ビッ ト ・ベース・オペランド ( 第 1 オペラン ド ) によって指定されるビット ・ スト リング 内で、 ビット・オフセット・オペランド( 第 2 オペラン ド ) に よ っ て指定さ れる ビ ッ ト 位 置のビッ トを選択し、 そのビッ トの値をCF フラグにストアし、 ビッ ト ・ スト リング内の 選択したビ ッ ト を 1 にセットする。 ビット・ベース・オペランドには、 レジスタまたはメ モリ ・ ロケーションを使用できる。 ビッ ト ・ オフセッ ト ・ オペランドには、 レジスタま たは即値を使用で き る。 ビ ッ ト ・ ベー ス ・ オペラ ン ド がレ ジ ス タ を指定している場合は、 この命令はビット・オフセット・オペランドの( レジスタ ・サイズに従って) 16 または 32 の剰余を と り、 それぞれ 16 または 32 ビッ トのレジスタで任意のビッ ト位置を選択で きるようにしている。 ビッ ト ・ベース ・ オペランドがメモリ ・ ロケーションを指定して いる場合は、 こ のオペラ ン ド は対象のビ ッ ト ・ ス ト リ ングのビ ッ ト ・ ベー ス ( 指定さ れた バイ ト のビッ ト 0) を含むメモ リ内のバイ ト のア ド レスを表している。 したがって、 オフ セッ ト ・オペランドは、 レジスタ ・オフセッ トの場合は -231 から 231 - 1 までの範囲の ビ ッ ト 位置を、 また即値オフセッ ト の場合は 0 から 31 までの範囲のビット位置を選択す る。 一部のアセンブ ラ は、 即値ビ ッ ト ・ オ フ セ ッ ト ・ フ ィ ー ル ド を メ モ リ ・ オペラ ン ド の デ ィ スプレ ー スメ ン ト ・ フ ィ ール ド と 組み合わせて使用して、 31 より大きい即値ビッ ト ・ オ フ セ ッ ト をサポ ー ト してい る。 こ のア ド レ ス指定機構の詳細は、 3:400 ページの 「BT—Bit Test」 を参照のこ と。 操作 CF ← Bit(BitBase, BitOffset) Bit(BitBase, BitOffset) ← 1; 影響を受けるフラグ CF フラグに選択されたビッ トのセッ ト される前の値がストアされる。 OF、 SF、 ZF、 AF、 PF フ ラ グは未定義。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 3:406 第 3 巻 : IA-32 基本命令リファレンス

BTS ─ Bit Test and Set ( 続き ) 保護モード例外 #GP(0) デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド の指示先が書き込み不可 能なセグ メ ン ト の場合。 メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 DS、 ES、 FS、 または GS レジスタの内容がNULL セグメ ン ト ・ セ レ ク タ の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 現行 特権レベルが 3 のときにアライメントが合わないメモリ参 照を行った場合。 実アドレス・モード例外 #GP メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 仮想 8086 モード例外 #GP メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ イ メ ン ト が合わないメモ リ 参照を行っ た場合。 第 3 巻 : IA-32 基本命令リファレンス 3:407

BTS ─ Bit Test and Set ( 続き )<br />

保護モード例外<br />

#GP(0) デス テ ィ ネ ー シ ョ ン ・ オペラ ン ド の指示先が書き込み不可<br />

能なセグ メ ン ト の場合。<br />

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

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

DS、 ES、 FS、 または GS レジスタの内容がNULL セグメ<br />

ン ト ・ セ レ ク タ の場合。<br />

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

囲外の場合。<br />

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

#AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 現行<br />

特権レベルが 3 のときにアライメントが合わないメモリ参<br />

照を行った場合。<br />

実アドレス・モード例外<br />

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

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

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

囲外の場合。<br />

仮想 8086 モード例外<br />

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

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

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

囲外の場合。<br />

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

#AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ<br />

イ メ ン ト が合わないメモ リ 参照を行っ た場合。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!