24531904_j
24531904_j 24531904_j
AND ─ Logical AND ( 続き ) 保護モード例外 #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(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ イ メ ン ト が合わないメモ リ 参照を行っ た場合。 3:390 第 3 巻 : IA-32 基本命令リファレンス
ARPL ─ Adjust RPL Field of Segment Selector オペコード 命令 説明 63 /r ARPL r/m16,r16 r/m16 の RPL を r16 の RPL 未満に調整する。 説明 2 つのセグメン ト ・ セレ ク タの RPL フィールドを比較する。 第1 オペラン ド ( デステ ィ ネーション ・ オペランド ) に一方のセグメン ト ・ セレ ク タがあり、 第 2 オペラン ド ( ソー ス・オペランド ) に他方のセグメン ト ・ セレ ク タがある。 (RPL フィールドは各オペランド のビッ ト 0 と 1 を占める。 ) デステ ィ ネーシ ョ ン ・ オペラン ド の RPL フィールドがソー ス・オペランドのRPL フィールドより小さい場合は、 ZF フラグがセッ ト され、 デスティ ネーション ・ オペランドの RPL フィールドが増加されてソース・オペランドのRPL フィールドに合わせられる。 そうでない場合は、 ZF フラグがクリアされ、 デスティネー ション・オペランドの変更は行われない。 ( デステ ィ ネーシ ョ ン ・ オペラン ド には、 ワー ド・レジスタまたはメモリ・ロケーションを使用できる。 ソース・オペランドは、 ワー ド・レジスタでなければならない。) APRL 命令は、 オペレ ー テ ィ ン グ ・ シ ス テ ム ・ プ ロ シ ー ジ ャ に使用 さ せるために設け ら れている ( ただし、 アプ リ ケーシ ョ ン も使用でき る )。 この命令は、 一般に、 アプ リ ケー シ ョ ンからオペレーテ ィ ング ・ システムに渡されていたセグメント ・ セレクタの RPL を 調整して、 アプ リ ケ ー シ ョ ン ・ プ ロ グ ラ ムの特権レベルに合わせる ために使用す る。 こ こで、 オペレーティング ・ システムに渡されていたセグメント ・セレクタがデスティ ネーション・オペランドに入れられ、 アプリケーション・プログラムのコード ・セグメ ントのセグメント ・セレクタがソース・オペランドに入れられる。 ( ソース・オペランド の RPL フィールドはアプリケーション・プログラムの特権レベルを表す。 ) 次に、 ARPL 命令を実行すれば、 オペレ ー テ ィ ン グ ・ シ ス テ ムが受け取 っ ていたセグ メ ン ト ・ セレ ク タの RPL をアプ リ ケーシ ョ ン ・ プログラムの特権レベルよ り低く ( 特権レベルを高 く ) させないように保証できる。 ( アプ リ ケーシ ョ ン ・ プログラムのコ ー ド ・ セグメン ト のセ グメント ・セレクタはプロシージャ ・ コールの後でスタックから読み出せる。 ) こ の命令の使用方法の詳細は、 『IA-32 インテル ® アーキテクチャ ・ ソフ ト ウェア ・ ディ ベロッパーズ ・ マニュアル、 下巻』 を参照のこ と。 操作 IF DEST(RPL) < SRC(RPL) THEN ZF ← 1; DEST(RPL) ← SRC(RPL); ELSE ZF ← 0; FI; 影響を受けるフラグ デステ ィ ネーシ ョ ン ・ オペラン ド の RPL フィールドがソース・オペランドのRPL フィールドより小さい場合は、 ZF フラグが1 にセッ ト される。 そ う でない場合は、 ZF フラグが0 にク リアされる。 第 3 巻 : IA-32 基本命令リファレンス 3:391
- Seite 351 und 352: 4.7.2 ロング型即値 64 移動
- Seite 353 und 354: 4.8 即値の生成 表 4-74 は、
- Seite 355 und 356: 0 リソースと依存関係のセ
- Seite 357 und 358: は、 シ リ アル化の要件
- Seite 359 und 360: 表 5-2. リソース別に編成
- Seite 361 und 362: 表 5-2. リソース別に編成
- Seite 363 und 364: 表 5-2. リソース別に編成
- Seite 365 und 366: 表 5-2. リソース別に編成
- Seite 367 und 368: 表 5-3. リソース別に編成
- Seite 369 und 370: 表 5-3. リソース別に編成
- Seite 371 und 372: 5.3.5 依存関係表で参照さ
- Seite 373 und 374: 5.4 サポートに関する表 表
- Seite 375 und 376: 表 5-5. 命令クラス ( 続き )
- Seite 377 und 378: 表 5-5. 命令クラス ( 続き )
- Seite 379 und 380: 表 5-5. 命令クラス ( 続き )
- Seite 381: 第 II 部 : IA-32命令セット
- Seite 384 und 385: ま たは浮動小数点命令を
- Seite 386 und 387: • rel16 および rel32 - アセ
- Seite 388 und 389: • レ ジ ス タ名は暗黙に
- Seite 390 und 391: 図 1-1. BIT[EAX,21] のビット
- Seite 392 und 393: 1.2.7 仮想 8086 モード例外
- Seite 394 und 395: AAD ─ ASCII Adjust AX Before Divi
- Seite 396 und 397: AAS ─ ASCII Adjust AL After Subtr
- Seite 398 und 399: ADC ─ Add with Carry ( 続き )
- Seite 400 und 401: ADD ─ Add ( 続き ) 保護モー
- Seite 404 und 405: ARPL ─ Adjust RPL Field of Segmen
- Seite 406 und 407: BOUND ─ Check Array Index Against
- Seite 408 und 409: BSF ─ Bit Scan Forward ( 続き )
- Seite 410 und 411: BSR ─ Bit Scan Reverse ( 続き )
- Seite 412 und 413: BT ─ Bit Test オペコード 命
- Seite 414 und 415: BTC ─ Bit Test and Complement オ
- Seite 416 und 417: BTR ─ Bit Test and Reset オペ
- Seite 418 und 419: BTS ─ Bit Test and Set オペコ
- Seite 420 und 421: CALL ─ Call Procedure オペコ
- Seite 422 und 423: CALL ─ Call Procedure ( 続き )
- Seite 424 und 425: CALL ─ Call Procedure ( 続き )
- Seite 426 und 427: CALL ─ Call Procedure ( 続き )
- Seite 428 und 429: CALL ─ Call Procedure ( 続き )
- Seite 430 und 431: CBW/CWDE ─ Convert Byte to Word/C
- Seite 432 und 433: CLC ─ Clear Carry Flag オペコ
- Seite 434 und 435: CLI ─ Clear Interrupt Flag オペ
- Seite 436 und 437: CLTS—Clear Task-Switched Flag in
- Seite 438 und 439: CMOVcc—Conditional Move オペコ
- Seite 440 und 441: CMOVcc—Conditional Move ( 続き
- Seite 442 und 443: CMP—Compare Two Operands オペ
- Seite 444 und 445: CMPS/CMPSB/CMPSW/CMPSD—Compare St
- Seite 446 und 447: CMPS/CMPSB/CMPSW/CMPSD—Compare St
- Seite 448 und 449: CMPXCHG—Compare and Exchange (
- Seite 450 und 451: CMPXCHG8B—Compare and Exchange 8
ARPL ─ Adjust RPL Field of Segment Selector<br />
オペコード 命令 説明<br />
63 /r ARPL r/m16,r16 r/m16 の RPL を r16 の RPL 未満に調整する。<br />
説明<br />
2 つのセグメン ト ・ セレ ク タの RPL フィールドを比較する。 第1 オペラン ド ( デステ ィ<br />
ネーション ・ オペランド ) に一方のセグメン ト ・ セレ ク タがあり、 第 2 オペラン ド ( ソー<br />
ス・オペランド ) に他方のセグメン ト ・ セレ ク タがある。 (RPL フィールドは各オペランド<br />
のビッ ト 0 と 1 を占める。 ) デステ ィ ネーシ ョ ン ・ オペラン ド の RPL フィールドがソー<br />
ス・オペランドのRPL フィールドより小さい場合は、 ZF フラグがセッ ト され、 デスティ<br />
ネーション ・ オペランドの RPL フィールドが増加されてソース・オペランドのRPL<br />
フィールドに合わせられる。 そうでない場合は、 ZF フラグがクリアされ、 デスティネー<br />
ション・オペランドの変更は行われない。 ( デステ ィ ネーシ ョ ン ・ オペラン ド には、 ワー<br />
ド・レジスタまたはメモリ・ロケーションを使用できる。 ソース・オペランドは、 ワー<br />
ド・レジスタでなければならない。)<br />
APRL 命令は、 オペレ ー テ ィ ン グ ・ シ ス テ ム ・ プ ロ シ ー ジ ャ に使用 さ せるために設け ら<br />
れている ( ただし、 アプ リ ケーシ ョ ン も使用でき る )。 この命令は、 一般に、 アプ リ ケー<br />
シ ョ ンからオペレーテ ィ ング ・ システムに渡されていたセグメント ・ セレクタの RPL を<br />
調整して、 アプ リ ケ ー シ ョ ン ・ プ ロ グ ラ ムの特権レベルに合わせる ために使用す る。 こ<br />
こで、 オペレーティング ・ システムに渡されていたセグメント ・セレクタがデスティ<br />
ネーション・オペランドに入れられ、 アプリケーション・プログラムのコード ・セグメ<br />
ントのセグメント ・セレクタがソース・オペランドに入れられる。 ( ソース・オペランド<br />
の RPL フィールドはアプリケーション・プログラムの特権レベルを表す。 ) 次に、 ARPL<br />
命令を実行すれば、 オペレ ー テ ィ ン グ ・ シ ス テ ムが受け取 っ ていたセグ メ ン ト ・ セレ ク<br />
タの RPL をアプ リ ケーシ ョ ン ・ プログラムの特権レベルよ り低く ( 特権レベルを高 く )<br />
させないように保証できる。 ( アプ リ ケーシ ョ ン ・ プログラムのコ ー ド ・ セグメン ト のセ<br />
グメント ・セレクタはプロシージャ ・ コールの後でスタックから読み出せる。 )<br />
こ の命令の使用方法の詳細は、 『IA-32 インテル ® アーキテクチャ ・ ソフ ト ウェア ・ ディ<br />
ベロッパーズ ・ マニュアル、 下巻』 を参照のこ と。<br />
操作<br />
IF DEST(RPL) < SRC(RPL)<br />
THEN<br />
ZF ← 1;<br />
DEST(RPL) ← SRC(RPL);<br />
ELSE<br />
ZF ← 0;<br />
FI;<br />
影響を受けるフラグ<br />
デステ ィ ネーシ ョ ン ・ オペラン ド の RPL フィールドがソース・オペランドのRPL<br />
フィールドより小さい場合は、 ZF フラグが1 にセッ ト される。 そ う でない場合は、 ZF<br />
フラグが0 にク リアされる。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:391