LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

CPUID

CPUIDオペコードは、x86アーキテクチャの機械語命令の一つである(この名前はCPUの識別 (IDentification) に由来する)。この命令は1990年代にインテルによって486チップの後期のステッピングで導入され、Pentiumプロセッサで完全に公開された。CPUIDオペコードを使用することで、ソフトウェアはプロセッサの形式と機能(例えば、MMX/SSE命令など)を識別することが出来る。CPUIDオペコードの値は0FA2hであり、EAXレジスタの値でどのような情報を取得するかを指定する。CPUID命令が使用可能になるまで、プログラマはプロセッサのモデルを区別するために、CPUの振る舞いの微妙な違いを利用する難解な機械語を使用していた。CPUID命令は、EAXレジスタが暗黙の引数であり、明示的な引数は付かない。どのような情報を返すべきかを指定する値をEAXレジスタに設定し、CPUID命令を実行する。まずcodice_1でCPUIDを呼び出し、CPUでサポートされている最大のパラメータを取得するべきである。CPUIDの拡張機能情報を取得する場合は、EAXのビット31をセットしてCPUIDを呼び出す。拡張機能情報でサポートされている最大の機能番号を得るためには、codice_2でCPUIDを呼び出す。これは、CPUベンダのID文字列を返す。12文字のASCII文字列がEBX, EDX, ECXの順序で格納される。基本機能の最大機能番号がEAXに格納される。既知のCPUベンダのID文字列は以下のとおり:例えば、ベンダIDが"GenuineIntel"の場合、EBXが0x756e6547、EDXが0x49656e69、ECXが0x6c65746eとなる。これはCPUのステッピング、モデル、ファミリーをEAXに返す(これはCPUの"シグネチャ"とも呼ばれる)。また、機能フラグをEDXとECXに、追加の機能情報をEBXに返す。EAXに格納される情報のフォーマットは以下のとおり:インテルとAMDは、CPUのファミリーを上記の"ファミリー"と"拡張ファミリー"の合計で表示し、モデルを上記の"モデル"と4ビット左シフトした"拡張モデル"の合計で表示するように提案した。プロセッサ情報と機能フラグはメーカ個別のものであるが、通常は互換性のためにインテルの値を他のメーカも使用している。これは、キャッシュとTLBの機能を示すディスクリプタのリストをEAX, EBX, ECX, EDXレジスタに格納する。これは、プロセッサのシリアル番号を返す。プロセッサ・シリアル・ナンバは、インテルがPentium IIIで導入したが、プライバシーの懸念のためにこの後のモデルでは実装されていない(PSN機能ビットは常にクリアされている)。トランスメタのEfficeonとCrusoeプロセッサはこの機能を提供している。AMDは、この機能をどのCPUにも実装しなかった。インテルPentium IIIでは、シリアル番号はEDX:ECXレジスタに格納される。トランスメタのEfficeonではEBX:EAXレジスタに、CrusoeではEBXレジスタだけに格納される。プロセッサ・シリアル・ナンバ機能を使用するためには、BIOSの設定を有効にする必要があることに注意すべきである。最大の拡張機能番号をEAXに格納する。拡張機能フラグをEDXとECXに格納する。プロセッサブランド文字列をEAX, EBX, ECX, EDXに格納する。全体で48バイトのNULL終端アスキー文字列のプロセッサブラント文字列を得るために、各パラメータを順番に設定しCPUIDを呼び出す必要がある。この機能は使用されていない。ECXにL2キャッシュの詳細情報を格納する。2種類の方法で表したキャッシュサイズと、キャッシュとメモリの対応を示すコードを含む。この機能は使用されていない。最大の仮想アドレスサイズと物理アドレスサイズをEAXに格納する。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。