24531904_j
24531904_j 24531904_j
POP—Pop a Value from the Stack ( 続き ) 仮想 8086 モード例外 #GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ イ メン ト が合わないメモ リ 参照が行われた場合。 3:690 第 3 巻 : IA-32 基本命令リファレンス
POPA/POPAD—Pop All General-Purpose Registers オペコード 命令 説明 61 POPA DI、SI、BP、BX、DX、CX、AX をポップする。 61 POPAD EDI、ESI、EBP、EBX、EDX、ECX、EAX をポップする。 説明 ダブルワー ド (POPAD) またはワー ド (POPA) をスタ ッ クから汎用レジスタにポップする。 レジスタがロード される順番は、 ( オペラン ド ・ サイズ属性が 32 である場合は ) EDI、 ESI、 EBP、 EBX、 EDX、 ECX、 EAX であ り、 ( オペラン ド ・ サイズ属性が 16 である場 合は ) DI、 SI、 BP、 BX、 DX、 CX、 AX である。 これらの命令は、 PUSHA/PUSHAD 命 令の逆の操作を実行する。 ESP レジスタまたは SP レジスタのスタック上の値は無視され る。 その代わりに、 ESP レジスタまたは SP レジスタは、 各レジスタがロード された後に インク リ メン ト される。 POPA ( すべてをポ ッ プ ) ニーモニッ クおよび POPAD ( すべてのダブルをポ ッ プ ) ニーモ ニックは、 同じオペコードを参照する。 POPA 命令は、 オペラ ン ド ・ サイ ズ属性が 16 で ある と きに使用するためのものであり、 POPAD 命令は、 オペラ ン ド ・ サ イ ズ属性が 32 である と き に使用す る ための も のである。 一部のアセンブ ラ は、 ( 必要な場合に は オペラ ンド ・サイズ・オーバライド ・プリフィックス[66H] を使用して ) POPA が使用される と きはオペランド ・サイズを 16 に、 POPAD が使用される と き は 32 に強制する。 他のアセ ンブラは、 これらのニーモニッ クをシノニム (POPA/POPAD) として取り扱い、 オペラン ド ・ サイズ属性の現在の設定を使用して、 使用されているニーモニ ッ ク に関係な く 、 ス タックからポップする値のサイズを決定できる。 操作 IF OperandSize = 32 (* instruction = POPAD *) THEN EDI ← Pop(); ESI ← Pop(); EBP ← Pop(); increment ESP by 4 (* skip next 4 bytes of stack *) EBX ← Pop(); EDX ← Pop(); ECX ← Pop(); EAX ← Pop(); ELSE (* OperandSize = 16, instruction = POPA *) DI ← Pop(); SI ← Pop(); BP ← Pop(); increment ESP by 2 (* skip next 2 bytes of stack *) BX ← Pop(); DX ← Pop(); CX ← Pop(); AX ← Pop(); FI; 影響を受けるフラグ なし。 第 3 巻 : IA-32 基本命令リファレンス 3:691
- Seite 652 und 653: LMSW—Load Machine Status Word オ
- Seite 654 und 655: LOCK—Assert LOCK# Signal Prefix
- 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 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 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
POP—Pop a Value from the Stack ( 続き )<br />
仮想 8086 モード例外<br />
#GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、<br />
または GS セグ メ ン ト の範囲外の場合。<br />
#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />
#AC(0) アライメン ト ・ チェ ッ クがイネーブルにされていて、 アラ<br />
イ メン ト が合わないメモ リ 参照が行われた場合。<br />
3:690 第 3 巻 : IA-32 基本命令リファレンス