24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

CPUID—CPU Identification ( 続き ) EBX ← Reserved, Undefined; ECX ← Reserved, Undefined; EDX ← Reserved, Undefined; BREAK; ESAC; memory_fence(); instruction_serialize(); 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト 例外 ( すべての操作モード ) なし。 NaT レ ジ ス タ参照アボ ー ト 。 インテル・アーキテクチャにおける互換性 CPUID 命令は、 初期モデルの Intel486 プロセッサまたは Intel486 プロセッサよ り も以前 のすべてのインテル ・ アーキテ クチャ ・ プロセ ッサでサポー ト されていない。 EFLAGS レジスタのID フ ラ グを使用して、 こ の命令がサポ ー ト されている か ど う かを判定で き る。 プロシージ ャがこのフラグをセッ ト またはク リアできれば、 プロセッサがそのプロ シージャを実行して CPUID をサポー ト できる。 3:444 第 3 巻 : IA-32 基本命令リファレンス

CWD/CDQ—Convert Word to Doubleword/Convert Doubleword to Quadword オペコード 命令 説明 99 CWD DX:AX ← AX の符号拡張 99 CDQ EDX:EAX ← EAX の符号拡張 説明 ( オペラン ド ・ サイズによ り ) AX または EAX レジスタ内のオペランドのサイズを符号 拡張に よ っ て 2 倍に拡張し、 結果を それぞれ DX:AX または EDX:EAX レジスタにストア する。 CWD 命令は、 AX レ ジスタの値の符号 ( ビッ ト 15) を DX レジスタのすべての ビッ ト位置にコピーする。 CDQ 命令は、 EAX レジスタの値の符号( ビット 31) を EDX レ ジ ス タ のすべての ビ ッ ト 位置に コ ピ ー す る。 CWD 命令を使用す る と 、 ワ ー ド 除算の前に ワ ー ド か ら ダブルワ ー ド の被除数を作る こ と ができ、 CDQ 命令を使用する と、 ダブルワ ー ド 除算の前にダブルワ ー ド か ら ク ワ ッ ド ワードの被除数を作れる。 CWD および CDQ ニーモニッ クは同じオペコー ド を参照する。 CWD 命令は オペラ ン ド ・ サイズ属性が 16 のとき、 またCDQ 命令は オペラ ン ド ・ サイ ズ属性が 32 のときに使用 するこ とを目的としている。 一部のアセンブラには、 CWD が使用された と き はオペラン ド・サイズを16 ビッ トに、 またCDQ が使用された と き は 32 ビ ッ ト に強制で き る も の がある。 その他のアセンブ ラ は、 こ れ ら のニー モニ ッ ク を同義語 (CWD/CDQ) として取 り 扱い、 ど ち ら のニ ー モニ ッ ク が使用 さ れて も 、 その と き のオペラ ン ド ・ サイ ズ属性の 設定を使用して変換対象の値のサイズを判定でき る。 操作 IF OperandSize = 16 (* CWD instruction *) THEN DX ← SignExtend(AX); ELSE (* OperandSize = 32, CDQ instruction *) EDX ← SignExtend(EAX); FI; 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト 影響を受けるフラグ なし。 例外 ( すべての操作モード ) なし。 NaT レ ジ ス タ参照アボ ー ト 。 第 3 巻 : IA-32 基本命令リファレンス 3:445

CPUID—CPU Identification ( 続き )<br />

EBX ← Reserved, Undefined;<br />

ECX ← Reserved, Undefined;<br />

EDX ← Reserved, Undefined;<br />

BREAK;<br />

ESAC;<br />

memory_fence();<br />

instruction_serialize();<br />

影響を受けるフラグ<br />

なし。<br />

追加の Itanium ベース・システム環境例外<br />

Itanium アーキテクチャ ・<br />

レジスタ ・ フォルト<br />

例外 ( すべての操作モード )<br />

なし。<br />

NaT レ ジ ス タ参照アボ ー ト 。<br />

インテル・アーキテクチャにおける互換性<br />

CPUID 命令は、 初期モデルの Intel486 プロセッサまたは Intel486 プロセッサよ り も以前<br />

のすべてのインテル ・ アーキテ クチャ ・ プロセ ッサでサポー ト されていない。 EFLAGS<br />

レジスタのID フ ラ グを使用して、 こ の命令がサポ ー ト されている か ど う かを判定で き<br />

る。 プロシージ ャがこのフラグをセッ ト またはク リアできれば、 プロセッサがそのプロ<br />

シージャを実行して CPUID をサポー ト できる。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!