24531904_j
24531904_j 24531904_j
LOCK—Assert LOCK# Signal Prefix オペコード 命令 説明 F0 LOCK 後の命令の実行中 LOCK# 信号をアサートする。 説明 こ のプ リ フ ィ ッ ク スの後の命令の実行中、 プ ロ セ ッ サの LOCK# 信号をアサー ト さ せる ( すなわち、 その命令をア ト ム命令に変える )。 マルチプロセッサ環境では、 LOCK# 信 号は、 それがアサー ト されている間プロセ ッ サが任意の共有メモ リ を独占的に使用でき る よ う に保証す る。 LOCK プリフィックスは、 ADD、 ADC、 AND、 BTC、 BTR、 BTS、 CMPXCHG、 DEC、 INC、 NEG、 NOT、 OR、 SBB、 SUB、 XOR、 XADD、 XCHG の各命令と これらの命令の メ モ リ ・ オペラ ン ド を使用す る形式の前に使用で き る。 LOCK プリフィックスを上記以 外の ど の命令に使用した場合 も 、 未定義オペ コ ー ド 例外が発生する。 XCHG 命令は、 LOCK プリフィックスの有無に関係なく、 常にLOCK# 信号をアサー ト する。 一般的に、 LOCK プリフィックスは、 共有メモリ環境内のメモリ ・ロケーションでの読 み取り / 修正 / 書き込み操作を実行する場合に BTS 命令に付けて使用される。 LOCK プ リ フ ッ ク スの有効性は メ モ リ ・ フ ィ ー ル ド のア ラ イ メ ン ト に よ っ て損なわれな い。 アラ イ メ ン ト がどの よ う にずれている メモ リ ・ フ ィ ール ド に対して も、 メモ リ ・ ロックは変わりなく有効である。 操作 IF Itanium System Environment AND External_Bus_Lock_Required AND DCR.lc THEN IA-32_Intercept(LOCK); AssertLOCK#(DurationOfAccompaningInstruction) 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ メモリ ・ フォル ト VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 IA-32_Intercept ロック・インターセプト - DCR.lc が 1 であ り 、 こ の操作を 完了するために外部ア ト ミ ッ ク ・ バス ・ ロ ッ ク が必要であ る場合は、 ア ト ミ ッ ク ・ ト ランザクシ ョ ンは発生せず、 こ の命令は失敗し、 IA-32_Intercept(Lock) フォルトが発生す る。 ソフ ト ウェア ・ ロ ッ ク ・ ハン ド ラが、 この命令をエ ミュレートする責任を負う。 3:642 第 3 巻 : IA-32 基本命令リファレンス
LOCK—Assert LOCK# Signal Prefix ( 続き ) 保護モード例外 #UD LOCK プ リ フ ィ ッ ク スが、 上記の 「説明」 の項に示してい ない命令に使用 さ れた場合。 こ の、 LOCK プリフックスが 適用されよ う と した命令か ら は、 他に も 例外が発生する可 能性がある。 実アドレス・モード例外 #UD LOCK プ リ フ ィ ッ ク スが、 上記の 「説明」 の項に示してい ない命令に使用 さ れた場合。 こ の、 LOCK プリフックスが 適用されよ う と した命令か ら は、 他に も 例外が発生する可 能性がある。 仮想 8086 モード例外 #UD LOCK プ リ フ ィ ッ ク スが、 上記の 「説明」 の項に示してい ない命令に使用 さ れた場合。 こ の、 LOCK プリフックスが 適用されよ う と した命令か ら は、 他に も 例外が発生する可 能性がある。 第 3 巻 : IA-32 基本命令リファレンス 3:643
- Seite 604 und 605: INT n/INTO/INT 3—Call to Interrup
- Seite 606 und 607: INT n/INTO/INT 3—Call to Interrup
- Seite 608 und 609: INT n/INTO/INT 3—Call to Interrup
- Seite 610 und 611: INVD—Invalidate Internal Caches (
- Seite 612 und 613: IRET/IRETD—Interrupt Return オ
- Seite 614 und 615: IRET/IRETD—Interrupt Return ( 続
- Seite 616 und 617: IRET/IRETD—Interrupt Return ( 続
- Seite 618 und 619: IRET/IRETD—Interrupt Return ( 続
- Seite 620 und 621: Jcc—Jump if Condition Is Met オ
- Seite 622 und 623: Jcc—Jump if Condition Is Met (
- Seite 624 und 625: JMP—Jump オペコード 命令
- Seite 626 und 627: JMP—Jump ( 続き ) 操作 IF nea
- Seite 628 und 629: JMP—Jump ( 続き ) END; TASK-GAT
- Seite 630 und 631: JMP—Jump ( 続き ) #PF ( フォ
- Seite 632 und 633: JMPE—Jump to Intel ® Itanium ®
- Seite 634 und 635: LAR—Load Access Rights Byte オ
- Seite 636 und 637: LAR—Load Access Rights Byte ( 続
- Seite 638 und 639: LDS/LES/LFS/LGS/LSS—Load Far Poin
- Seite 640 und 641: LEA—Load Effective Address オペ
- Seite 642 und 643: LEAVE—High Level Procedure Exit
- Seite 644 und 645: LES—Load Full Pointer 「LDS/LES/
- Seite 646 und 647: LGDT/LIDT—Load Global/Interrupt D
- Seite 648 und 649: LGS—Load Full Pointer 「LDS/LES/
- Seite 650 und 651: LLDT—Load Local Descriptor Table
- Seite 652 und 653: LMSW—Load Machine Status Word オ
- Seite 656 und 657: LODS/LODSB/LODSW/LODSD—Load Strin
- Seite 658 und 659: LODS/LODSB/LODSW/LODSD—Load Strin
- Seite 660 und 661: LOOP/LOOPcc—Loop According to ECX
- Seite 662 und 663: LSL—Load Segment Limit ( 続き )
- Seite 664 und 665: LSS—Load Full Pointer 「LDS/LES/
- Seite 666 und 667: LTR—Load Task Register ( 続き )
- Seite 668 und 669: MOV—Move ( 続き ) デスティ
- Seite 670 und 671: MOV—Move ( 続き ) #GP( セレ
- Seite 672 und 673: MOV—Move to/from Control Register
- 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 (
LOCK—Assert LOCK# Signal Prefix<br />
オペコード 命令 説明<br />
F0 LOCK 後の命令の実行中 LOCK# 信号をアサートする。<br />
説明<br />
こ のプ リ フ ィ ッ ク スの後の命令の実行中、 プ ロ セ ッ サの LOCK# 信号をアサー ト さ せる<br />
( すなわち、 その命令をア ト ム命令に変える )。 マルチプロセッサ環境では、 LOCK# 信<br />
号は、 それがアサー ト されている間プロセ ッ サが任意の共有メモ リ を独占的に使用でき<br />
る よ う に保証す る。<br />
LOCK プリフィックスは、 ADD、 ADC、 AND、 BTC、 BTR、 BTS、 CMPXCHG、 DEC、<br />
INC、 NEG、 NOT、 OR、 SBB、 SUB、 XOR、 XADD、 XCHG の各命令と これらの命令の<br />
メ モ リ ・ オペラ ン ド を使用す る形式の前に使用で き る。 LOCK プリフィックスを上記以<br />
外の ど の命令に使用した場合 も 、 未定義オペ コ ー ド 例外が発生する。 XCHG 命令は、<br />
LOCK プリフィックスの有無に関係なく、 常にLOCK# 信号をアサー ト する。<br />
一般的に、 LOCK プリフィックスは、 共有メモリ環境内のメモリ ・ロケーションでの読<br />
み取り / 修正 / 書き込み操作を実行する場合に BTS 命令に付けて使用される。<br />
LOCK プ リ フ ッ ク スの有効性は メ モ リ ・ フ ィ ー ル ド のア ラ イ メ ン ト に よ っ て損なわれな<br />
い。 アラ イ メ ン ト がどの よ う にずれている メモ リ ・ フ ィ ール ド に対して も、 メモ リ ・<br />
ロックは変わりなく有効である。<br />
操作<br />
IF Itanium System Environment AND External_Bus_Lock_Required AND DCR.lc<br />
THEN IA-32_Intercept(LOCK);<br />
AssertLOCK#(DurationOfAccompaningInstruction)<br />
影響を受けるフラグ<br />
なし。<br />
追加の Itanium ベース・システム環境例外<br />
Itanium アーキテクチャ ・<br />
メモリ ・ フォル ト<br />
VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、<br />
データ TLB フォルト、 代替データTLB フォルト、 デー<br />
タ・ページ不在フォルト、 データNaT ページ参照アボー<br />
ト、 データ・キー・ ミス・フォルト、 データ・キー許可<br />
フォルト、 データ・アクセス権フォルト、 データ・アクセ<br />
ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ<br />
ルト。<br />
IA-32_Intercept ロック・インターセプト - DCR.lc が 1 であ り 、 こ の操作を<br />
完了するために外部ア ト ミ ッ ク ・ バス ・ ロ ッ ク が必要であ<br />
る場合は、 ア ト ミ ッ ク ・ ト ランザクシ ョ ンは発生せず、 こ<br />
の命令は失敗し、 IA-32_Intercept(Lock) フォルトが発生す<br />
る。 ソフ ト ウェア ・ ロ ッ ク ・ ハン ド ラが、 この命令をエ<br />
ミュレートする責任を負う。<br />
3:642 第 3 巻 : IA-32 基本命令リファレンス