16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

PUSHA/PUSHAD—Push All General-Purpose Registers<br />

オペコード 命令 説明<br />

60 PUSHA AX、CX、DX、BX、元の SP、BP、SI、および DI をプッシュする。<br />

60 PUSHAD EAX、ECX、EDX、EBX、元の ESP、EBP、ESI、および EDI を<br />

プッシュする。<br />

説明<br />

汎用レジスタの内容をスタックにプッシュする。 レジスタがスタックにストアされる順<br />

番は、 ( 現在のオペラ ン ド ・ サイズ属性が 32 である場合は ) EAX、 ECX、 EDX、 EBX、<br />

ESP( 元の値 )、 EBP、 ESI、 EDI であり、 ( オペラン ド ・ サイズ属性が 16 である場合は )<br />

AX、 CX、 DX、 BX、 SP( 元の値 )、 BP、 SI、 DI である。 ( これらの命令は、 POPA/<br />

POPAD 命令の逆の操作を実行す る。 ) ESP レジスタまたは SP レジスタとしてプッシュさ<br />

れる値は、 最初のレジスタをプッ シュする前のその値である ( 下記の 「操作」 を参照 )。<br />

PUSHA ( すべてをプ ッ シ ュ ) ニーモニッ クおよび PUSHAD ( すべてのダブルをプ ッ シュ )<br />

ニーモニッ クは、 同じオペコー ドを参照する。 PUSHA 命令は、 オペラ ン ド ・ サイ ズ属性<br />

が 16 であ る と き に使用す る ための も のであ り 、 PUSHAD 命令は、 オペラ ン ド ・ サイ ズ<br />

属性が 32 である と き に使用す る ための も のである。 一部のアセンブ ラ は、 PUSHA が使<br />

用されると きはオペラン ド ・ サイズを 16 に、 PUSHAD が使用される と き は 32 に強制す<br />

る。 他のアセンブラは、 これらのニーモニッ クをシノニム (PUSHA/PUSHAD) として取<br />

り 扱い、 オペラ ン ド ・ サイ ズ属性の現在の設定を使用して、 使用されるニーモニ ッ ク に<br />

関係なく、 スタッ クにプッシュする値のサイズを決定するこ とができる。<br />

実ア ド レス ・ モー ド では、 PUSHA/PUSHAD 命令が実行 さ れる と き に、 ESP レジスタま<br />

たは SP レジスタが1、 3、 または 5 である場合、 プ ロ セ ッ サは ス タ ッ ク ・ スペー スの不<br />

足に よ っ てシ ャ ッ ト ・ ダ ウ ンする。 こ の状態を示す例外は生成 さ れない。<br />

操作<br />

IF OperandSize = 32 (* PUSHAD instruction *)<br />

THEN<br />

Temp ← (ESP);<br />

Push(EAX);<br />

Push(ECX);<br />

Push(EDX);<br />

Push(EBX);<br />

Push(Temp);<br />

Push(EBP);<br />

Push(ESI);<br />

Push(EDI);<br />

ELSE (* OperandSize = 16, PUSHA instruction *)<br />

Temp ← (SP);<br />

Push(AX);<br />

Push(CX);<br />

Push(DX);<br />

Push(BX);<br />

Push(Temp);<br />

Push(BP);<br />

Push(SI);<br />

Push(DI);<br />

FI;<br />

第 3 巻 : IA-32 基本命令リファレンス 3:699

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!