プロセッサがサポートする機能 <TOP>
プロセッサがサポートする機能を取得します。
IsProcessorFeaturePresent プロセッサ機能がサポートされているかどうかを取得
'================================================================ '= プロセッサがサポートする機能
'= (IsProcessorFeaturePresent.bas) '================================================================ #define PF_FLOATING_POINT_PRECISION_ERRATA 0 '浮動小数点精度エラー発生可能性 #define PF_FLOATING_POINT_EMULATED 1 '浮動小数点演算がソフトウェアエミュレータを使ってエミュレート #define PF_COMPARE_EXCHANGE_DOUBLE 2 '比較置換二重演算に対応 #define PF_MMX_INSTRUCTIONS_AVAILABLE 3 'MMX命令セットに対応 #define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 'XMMI命令セットに対応 #define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7 '3D-Now命令セットに対応 #define PF_RDTSC_INSTRUCTION_AVAILABLE 8 'RDTSC命令セットに対応 #define PF_PAE_ENABLED 9 'プロセッサはPAE-enabled ' プロセッサ機能がサポートされているかどうかを取得 Declare Function Api_IsProcessorFeaturePresent& Lib "kernel32" Alias "IsProcessorFeaturePresent" (ByVal ProcessorFeature&) Declare Sub GetFeature(Index As Long, Msg As String) Sub GetFeature(Index As Long, Msg As String) If Api_IsProcessorFeaturePresent(Index) = 0 Then Print Msg & ": false" Else Print Msg & ": true" End If End Sub GetFeature PF_FLOATING_POINT_PRECISION_ERRATA, "フローティングポイントエラー " GetFeature PF_FLOATING_POINT_EMULATED, "浮動小数点演算エミュレート " GetFeature PF_COMPARE_EXCHANGE_DOUBLE, "ダブルオペレーション " GetFeature PF_MMX_INSTRUCTIONS_AVAILABLE, "MMX(MultiMedia eXtension) " GetFeature PF_XMMI_INSTRUCTIONS_AVAILABLE, "XMMI " GetFeature PF_3DNOW_INSTRUCTIONS_AVAILABLE, "3D-Now(AMD社の拡張命令セット) " GetFeature PF_RDTSC_INSTRUCTION_AVAILABLE, "RDTSC(read-time stamp counter)" GetFeature PF_PAE_ENABLED, "PAE-enabled(物理アドレス拡張) " Stop End