24531904_j
24531904_j 24531904_j
RDTSC—Read Time-Stamp Counter ( 続き ) 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト #GP(0) PSR.si が 1 または CR4.TSD が 1 で、 CPL が 0 より大きい 場合。 保護モード例外 #GP(0) CR4 レジスタのTSD フラグがセット されていて、 CPL が 0 よ り 大き い場合。 /*For the IA-32 System Environment only*/ 実アドレス・モード例外 #GP CR4 レジスタのTSD フ ラ グがセ ッ ト さ れた場合。 /*For the IA-32 System Environment only*/ 仮想 8086 モード例外 NaT レ ジ ス タ参照アボ ー ト 。 #GP(0) CR4 レジスタのTSD フ ラ グがセ ッ ト さ れた場合。 /*For the IA-32 System Environment only*/ 3:712 第 3 巻 : IA-32 基本命令リファレンス
REP/REPE/REPZ/REPNE/REPNZ—Repeat String Operation Prefix オペコード 命令 説明 F3 6C REP INS r/m8, DX ECX のバイトをポート DX から ES:[EDI] に入力する。 F3 6D REP INS r/m16,DX ECX のワードをポート DX から ES:[EDI] に入力する。 F3 6D REP INS r/m32,DX ECX のダブルワードをポート DX から ES:[EDI] に入力する。 F3 A4 REP MOVS m8,m8 ECX のバイトを DS:[ESI] から ES:[EDI] に転送する。 F3 A5 REP MOVS m16,m16 ECX のワードを DS:[ESI] から ES:[EDI] に転送する。 F3 A5 REP MOVS m32,m32 ECX のダブルワードを DS:[ESI] から ES:[EDI] に転送する。 F3 6E REP OUTS DX,r/m8 ECX のバイトを DS:[ESI] からポート DX に出力する。 F3 6F REP OUTS DX,r/m16 ECX のワードを DS:[ESI] からポート DX に出力する。 F3 6F REP OUTS DX,r/m32 ECX のダブルワードを DS:[ESI] からポート DX に出力する。 F3 AC REP LODS AL ECX のバイトを DS:[ESI] から AL にロードする。 F3 AD REP LODS AX ECX のワードを DS:[ESI] から AX にロードする。 F3 AD REP LODS EAX ECX のダブルワードを DS:[ESI] から EAX にロードする。 F3 AA REP STOS m8 ES:[EDI] にある ECX のバイトを AL で埋める。 F3 AB REP STOS m16 ES:[EDI] にある ECX のワードを AX で埋める。 F3 AB REP STOS m32 ES:[EDI] にある ECX のダブルワードを EAX で埋める。 F3 A6 REPE CMPS m8,m8 ES:[EDI] と DS:[ESI] にある一致していないバイトを探す。 F3 A7 REPE CMPS m16,m16 ES:[EDI] と DS:[ESI] にある一致していないワードを探す。 F3 A7 REPE CMPS m32,m32 ES:[EDI] と DS:[ESI] にある一致していないダブルワードを探す。 F3 AE REPE SCAS m8 ES:[EDI] で始まる AL でないバイトを探す。 F3 AF REPE SCAS m16 ES:[EDI] で始まる AX でないワードを探す。 F3 AF REPE SCAS m32 ES:[EDI] で始まる EAX でないダブルワードを探す。 F2 A6 REPNE CMPS m8,m8 ES:[EDI] と DS:[ESI] にある一致しているバイトを探す。 F2 A7 REPNE CMPS m16,m16 ES:[EDI] と DS:[ESI] にある一致しているワードを探す。 F2 A7 REPNE CMPS m32,m32 ES:[EDI] と DS:[ESI] にある一致しているダブルワードを探す。 F2 AE REPNE SCAS m8 ES:[EDI] で始まる AL を探す。 F2 AF REPNE SCAS m16 ES:[EDI] で始まる AX を探す。 F2 AF REPNE SCAS m32 ES:[EDI] で始まる EAX を探す。 説明 カウンタ ・ レジスタ (ECX) に指定された回数か、 ま たは ZF フラグの指定された条件が満 たされな く なる ま で、 ス ト リ ング命令を繰り返す。 REP ( リピート )、 REPE ( 等しい間は リピート )、 REPNE ( 等し く ない間は リ ピ ー ト )、 REPZ ( ゼロの間はリピー ト )、 REPNZ ( ゼロでない間は リ ピー ト ) の各ニーモニ ッ ク は、 ス ト リ ング命令の 1 つに付加できるプ リフィックスである。 REP プリフィックスは、 INS、 OUTS、 MOVS、 LODS、 STOS 命令 に付加する こ と ができ、 REPE、 REPNE、 REPZ、 REPNZ プリフィックスは、 CMPS およ び SCAS 命令に付加で き る。 (REPZ プリフィックスと REPNZ プリフィックスは、 それぞ れ REPE プリフィックスと REPNE プリフィックスのシノニム形式である。 ) 非ス ト リ ン グ命令と と も に使用する と、 REP プ リ フ ィ ッ ク スの行動は未定義である。 REP プリフィックスは、 一度には1 つのス ト リ ン グ命令だけ に適用 さ れる。 命令ブ ロ ッ クを繰り返すには、 LOOP 命令 ま たは その他のルー プ構造体を使用する。 第 3 巻 : IA-32 基本命令リファレンス 3:713
- Seite 674 und 675: MOV—Move to/from Debug Registers
- Seite 676 und 677: MOVS/MOVSB/MOVSW/MOVSD—Move Data
- Seite 678 und 679: MOVSX—Move with Sign-Extension
- Seite 680 und 681: MOVZX—Move with Zero-Extend オ
- Seite 682 und 683: MUL—Unsigned Multiplication of AL
- Seite 684 und 685: NEG—Two's Complement Negation オ
- Seite 686 und 687: NOP—No Operation オペコード
- Seite 688 und 689: NOT—One's Complement Negation (
- Seite 690 und 691: OR—Logical Inclusive OR ( 続き
- 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 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 742 und 743: SBB—Integer Subtraction with Borr
- 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 ( 続き
REP/REPE/REPZ/REPNE/REPNZ—Repeat String Operation Prefix<br />
オペコード 命令 説明<br />
F3 6C REP INS r/m8, DX ECX のバイトをポート DX から ES:[EDI] に入力する。<br />
F3 6D REP INS r/m16,DX ECX のワードをポート DX から ES:[EDI] に入力する。<br />
F3 6D REP INS r/m32,DX ECX のダブルワードをポート DX から ES:[EDI] に入力する。<br />
F3 A4 REP MOVS m8,m8 ECX のバイトを DS:[ESI] から ES:[EDI] に転送する。<br />
F3 A5 REP MOVS m16,m16 ECX のワードを DS:[ESI] から ES:[EDI] に転送する。<br />
F3 A5 REP MOVS m32,m32 ECX のダブルワードを DS:[ESI] から ES:[EDI] に転送する。<br />
F3 6E REP OUTS DX,r/m8 ECX のバイトを DS:[ESI] からポート DX に出力する。<br />
F3 6F REP OUTS DX,r/m16 ECX のワードを DS:[ESI] からポート DX に出力する。<br />
F3 6F REP OUTS DX,r/m32 ECX のダブルワードを DS:[ESI] からポート DX に出力する。<br />
F3 AC REP LODS AL ECX のバイトを DS:[ESI] から AL にロードする。<br />
F3 AD REP LODS AX ECX のワードを DS:[ESI] から AX にロードする。<br />
F3 AD REP LODS EAX ECX のダブルワードを DS:[ESI] から EAX にロードする。<br />
F3 AA REP STOS m8 ES:[EDI] にある ECX のバイトを AL で埋める。<br />
F3 AB REP STOS m16 ES:[EDI] にある ECX のワードを AX で埋める。<br />
F3 AB REP STOS m32 ES:[EDI] にある ECX のダブルワードを EAX で埋める。<br />
F3 A6 REPE CMPS m8,m8 ES:[EDI] と DS:[ESI] にある一致していないバイトを探す。<br />
F3 A7 REPE CMPS m16,m16 ES:[EDI] と DS:[ESI] にある一致していないワードを探す。<br />
F3 A7 REPE CMPS m32,m32 ES:[EDI] と DS:[ESI] にある一致していないダブルワードを探す。<br />
F3 AE REPE SCAS m8 ES:[EDI] で始まる AL でないバイトを探す。<br />
F3 AF REPE SCAS m16 ES:[EDI] で始まる AX でないワードを探す。<br />
F3 AF REPE SCAS m32 ES:[EDI] で始まる EAX でないダブルワードを探す。<br />
F2 A6 REPNE CMPS m8,m8 ES:[EDI] と DS:[ESI] にある一致しているバイトを探す。<br />
F2 A7 REPNE CMPS m16,m16 ES:[EDI] と DS:[ESI] にある一致しているワードを探す。<br />
F2 A7 REPNE CMPS m32,m32 ES:[EDI] と DS:[ESI] にある一致しているダブルワードを探す。<br />
F2 AE REPNE SCAS m8 ES:[EDI] で始まる AL を探す。<br />
F2 AF REPNE SCAS m16 ES:[EDI] で始まる AX を探す。<br />
F2 AF REPNE SCAS m32 ES:[EDI] で始まる EAX を探す。<br />
説明<br />
カウンタ ・ レジスタ (ECX) に指定された回数か、 ま たは ZF フラグの指定された条件が満<br />
たされな く なる ま で、 ス ト リ ング命令を繰り返す。 REP ( リピート )、 REPE ( 等しい間は<br />
リピート )、 REPNE ( 等し く ない間は リ ピ ー ト )、 REPZ ( ゼロの間はリピー ト )、 REPNZ<br />
( ゼロでない間は リ ピー ト ) の各ニーモニ ッ ク は、 ス ト リ ング命令の 1 つに付加できるプ<br />
リフィックスである。 REP プリフィックスは、 INS、 OUTS、 MOVS、 LODS、 STOS 命令<br />
に付加する こ と ができ、 REPE、 REPNE、 REPZ、 REPNZ プリフィックスは、 CMPS およ<br />
び SCAS 命令に付加で き る。 (REPZ プリフィックスと REPNZ プリフィックスは、 それぞ<br />
れ REPE プリフィックスと REPNE プリフィックスのシノニム形式である。 ) 非ス ト リ ン<br />
グ命令と と も に使用する と、 REP プ リ フ ィ ッ ク スの行動は未定義である。<br />
REP プリフィックスは、 一度には1 つのス ト リ ン グ命令だけ に適用 さ れる。 命令ブ ロ ッ<br />
クを繰り返すには、 LOOP 命令 ま たは その他のルー プ構造体を使用する。<br />
第 3 巻 : IA-32 基本命令リファレンス 3:713