24531904_j
24531904_j 24531904_j
SBB—Integer Subtraction with Borrow ( 続き ) 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト 保護モード例外 #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 モード例外 NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 #GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ イ メン ト が合わないメモ リ 参照が行われた場合。 3:730 第 3 巻 : IA-32 基本命令リファレンス
SCAS/SCASB/SCASW/SCASD—Scan String オペコード 命令 説明 AE SCAS ES:(E)DI AL を ES:(E)DI のバイトと比較し、ステータス・フラグを設定する。 AF SCAS ES:DI AX を ES:DI のワードと比較し、ステータス・フラグを設定する。 AF SCAS ES:EDI EAX を ES:EDI のダブルワードと比較し、ステータス・フラグを設 定する。 AE SCASB AL を ES:(E)DI のバイトと比較し、ステータス・フラグを設定する。 AF SCASW AX を ES:DI のワードと比較し、ステータス・フラグを設定する。 AF SCASD EAX を ES:EDI のダブルワードと比較し、ステータス・フラグを設 定する。 説明 ソース ・オペランドで指定されたバイト、 ワード、 またはダブルワードを、 それぞれ AL、 AX、 または EAX レジスタの値と比較し、 結果に従ってEFLAGS レジスタのス テータス ・ フラグを設定する。 ソース ・ オペランドは、 アドレス ES:EDI のメモリ ・ ロ ケーションを指定する ( オペラン ド ・ サイズ属性が 16 の場合は、 DI レジスタがソース ・ イ ンデ ッ ク ス ・ レ ジ ス タ と して使用 さ れる )。 ES セグメン ト は、 セグメン ト ・ オーバラ イド ・プリフィックスでオーバライドできない。 SCASB、 SCASW、 SCASD ニーモニッ クは、 それぞれ SCAS 命令のバイ ト 版、 ワ ー ド 版、 ダブルワー ド版のシノニムである。 これらのニーモニッ クは使い方が簡単であるが、 タ イプ ・ チェ ッ クやセグメント ・ チェ ッ クの機能を持たない (SCAS 命令では、 命令の中で "ES:EDI" を明示的に指定しなければならない ) 比較後、 EDI レジスタは EFLAGS レジスタ内のDF フ ラ グの設定に従っ て自動的に イ ン クリメントまたはデクリメントされる。 (DF フラグが0 である場合は、 EDI レジスタは インク リ メン ト される。 DF フラグが1 である場合は、 EDI レジスタはデクリメント され る。 ) EDI レ ジ ス タ は、 バイ ト 操作の場合は 1、 ワー ド操作の場合は 2、 ダブルワー ド操 作の場合は 4、 それぞれインク リ メン ト またはデク リ メン ト される。 SCAS、 SCASB、 SCASW、 SCASD 命令は、 前に REP プリフィックスを付けると、 ECX バイ ト、 ワー ド、 またはダブルワー ドのブロ ッ ク比較を行う こ とができる。 しかし通常 は、 こ れ ら の命令は、 次の比較が行われる前にス テ ー タ ス ・ フ ラ グの設定に基づいてあ る処置を行うループ構造体で使用される こ との方が多い。 REP プ リ フ ィ ッ ク スの説明に ついては、 3:713 ページの 「REP/REPE/REPZ/REPNE/REPNZ—Repeat String Operation Prefix」 を参照のこ と。 操作 IF (byte cmparison) THEN temp ← AL − SRC; SetStatusFlags(temp); THEN IF DF = 0 THEN (E)DI ← 1; ELSE (E)DI ← -1; FI; ELSE IF (word comparison) THEN temp ← AX − SRC; SetStatusFlags(temp) THEN IF DF = 0 THEN DI ← 2; 第 3 巻 : IA-32 基本命令リファレンス 3:731
- Seite 692 und 693: OUT—Output to Port ( 続き ) 操
- Seite 694 und 695: OUTS/OUTSB/OUTSW/OUTSD—Output Str
- Seite 696 und 697: OUTS/OUTSB/OUTSW/OUTSD—Output Str
- Seite 698 und 699: POP—Pop a Value from the Stack
- Seite 700 und 701: POP—Pop a Value from the Stack (
- Seite 702 und 703: POP—Pop a Value from the Stack (
- Seite 704 und 705: POPA/POPAD—Pop All General-Purpos
- Seite 706 und 707: POPF/POPFD—Pop Stack into EFLAGS
- Seite 708 und 709: PUSH—Push Word or Doubleword onto
- Seite 710 und 711: PUSH—Push Word or Doubleword onto
- Seite 712 und 713: PUSHA/PUSHAD—Push All General-Pur
- Seite 714 und 715: PUSHF/PUSHFD—Push EFLAGS Register
- Seite 716 und 717: RCL/RCR/ROL/ROR-—Rotate ( 続き
- Seite 718 und 719: RCL/RCR/ROL/ROR-—Rotate ( 続き
- Seite 720 und 721: RDMSR—Read from Model Specific Re
- Seite 722 und 723: RDPMC—Read Performance-Monitoring
- Seite 724 und 725: RDTSC—Read Time-Stamp Counter (
- Seite 726 und 727: REP/REPE/REPZ/REPNE /REPNZ—Repeat
- Seite 728 und 729: RET—Return from Procedure オペ
- Seite 730 und 731: RET—Return from Procedure ( 続
- Seite 732 und 733: RET—Return from Procedure ( 続
- Seite 734 und 735: ROL/ROR—Rotate 「RCL/RCR/ROL/ROR
- Seite 736 und 737: SAHF—Store AH into Flags オペ
- Seite 738 und 739: SAL/SAR/SHL/SHR—Shift ( 続き )
- Seite 740 und 741: SAL/SAR/SHL/SHR—Shift ( 続き )
- Seite 744 und 745: SCAS/SCASB/SCASW/SCASD—Scan Strin
- Seite 746 und 747: SETcc—Set Byte on Condition オ
- Seite 748 und 749: SETcc—Set Byte on Condition ( 続
- Seite 750 und 751: SGDT/SIDT—Store Global/Interrupt
- Seite 752 und 753: SHLD—Double Precision Shift Left
- Seite 754 und 755: SHLD—Double Precision Shift Left
- Seite 756 und 757: SHRD—Double Precision Shift Right
- Seite 758 und 759: SIDT—Store Interrupt Descriptor T
- Seite 760 und 761: SLDT—Store Local Descriptor Table
- Seite 762 und 763: SMSW—Store Machine Status Word (
- Seite 764 und 765: STD—Set Direction Flag オペコ
- Seite 766 und 767: STI—Set Interrupt Flag ( 続き )
- Seite 768 und 769: STOS/STOSB/STOSW/STOSD—Store Stri
- Seite 770 und 771: STOS/STOSB/STOSW/STOSD—Store Stri
- Seite 772 und 773: STR—Store Task Register ( 続き
- Seite 774 und 775: SUB—Subtract ( 続き ) 保護モ
- Seite 776 und 777: TEST—Logical Compare ( 続き )
- Seite 778 und 779: VERR, VERW—Verify a Segment for R
- Seite 780 und 781: WAIT/FWAIT—Wait オペコード
- Seite 782 und 783: WBINVD—Write Back and Invalidate
- Seite 784 und 785: WRMSR—Write to Model Specific Reg
- Seite 786 und 787: XADD—Exchange and Add ( 続き )
- Seite 788 und 789: XCHG—Exchange Register/Memory wit
- Seite 790 und 791: XLAT/XLATB—Table Look-up Translat
SBB—Integer Subtraction with Borrow ( 続き )<br />
追加の Itanium ベース・システム環境例外<br />
Itanium アーキテクチャ ・<br />
レジスタ ・ フォルト<br />
Itanium アーキテクチャ ・<br />
メモリ ・ フォル ト<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) 現行特権レベルが 3 のときに、 アライメント ・チェックが<br />
イネーブルにされていて、 アライメントが合わないメモリ<br />
参照が行われた場合。<br />
実アドレス・モード例外<br />
#GP メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />
または GS セグ メ ン ト の範囲外の場合。<br />
#SS メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />
囲外の場合。<br />
仮想 8086 モード例外<br />
NaT レ ジ ス タ参照アボ ー ト 。<br />
VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、<br />
データ TLB フォルト、 代替データTLB フォルト、 デー<br />
タ・ページ不在フォルト、 データNaT ページ参照アボー<br />
ト、 データ・キー・ ミス・フォルト、 データ・キー許可<br />
フォルト、 データ・アクセス権フォルト、 データ・アクセ<br />
ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ<br />
ルト。<br />
#GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />
または GS セグ メ ン ト の範囲外の場合。<br />
#SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範<br />
囲外の場合。<br />
#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />
#AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ<br />
イ メン ト が合わないメモ リ 参照が行われた場合。<br />
3:730 第 3 巻 : IA-32 基本命令リファレンス