亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? getcpuid.pas

?? 一個售樓系統
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
Unit GetCPUID;
Interface
Uses Windows, Mmsystem, SysUtils, Math, Dialogs;
Type
   TCpuRec = Record
      Name: String[128];
      Vendor: String[12];
      Frequency: word;
      Family: integer;
      Model: integer;
      Stepping: integer;
      L1DCache: word;
      L1ICache: word;
      L2Cache: word;
   End;
   TCpuType = (cpu8086, cpu286, cpu386, cpu486, cpuPentium);
   TCPUIDARRAY = Array[1..4] Of Longint;
   TCpuData = Object
      Function GetCPUID: String;
      Function GetCPUIDSupport: Boolean;
      Function GetVendorString: String;
      Function GetCPUFrequency: word;
      Procedure GetFMS(Var Family, Model, Stepping: byte);
      Function GetMaxCpuId: dword;
      Function CheckFPU: Boolean;
      Function CheckTSC: Boolean;
      Function CheckMSR: Boolean;
      Function CheckMPS: Boolean;
      Function GetNoCpus: cardinal;
      Function CheckPN: Boolean;
      Function CheckCMPXCHG8B: Boolean;
      Function CheckCMOVe: Boolean;
      Function CheckSelfSnoop: Boolean;
      Function CheckDebugTraceStore: Boolean;
      Function CheckFXSAVEFXRSTOR: Boolean;
      Function CheckMMX: Boolean;
      Function CheckMMXplus: Boolean;
      Function CheckSSE: Boolean;
      Function CheckSSE2: Boolean;
      Function CheckAMD3DNow: Boolean;
      Function CheckAMD3DNowPlus: Boolean;
      Function GetMaxExtendedFunctions: dword;
      Procedure GetExtendedFMS(Var Family, Model, Stepping: byte);
      Function GetExtendedCpuName: String;
      Function GetExtendedL1DCache: word;
      Function GetExtendedL1ICache: word;
      Function GetExtendedL2Cache: word;

      Function CheckCeleron: Boolean;
      Function CheckPentiumIII: Boolean;
      Function CheckXeon: Boolean;
      Function CheckPentium4: Boolean;
      Function CheckIthanium: Boolean;

  //****Aici am conrectat****
      Function IntelP5N: String;
      Function IntelP6N: String;
  //****Pana aici****
      Function AMDK5N: String;
      Function Cyrix686N: String;
      Function GenericCpuN: String;
      Function P5CacheL1DI: word;
      Function P6CacheL1DI: word;
      Function P6CacheL2: word;

      Function AuthenticAMD: TCpuRec;

      Function GenuineIntel: TCpuRec;
      Function CyrixInstead: TCpuRec;
      Function GenericCPU: TCpuRec;
   End;
Const
   Intel486         : Array[0..8] Of String =
      ('Intel 486 DX',
      'Intel 486 DX',
      'Intel 486 SX',
      'Intel 486 DX2',
      'Intel 486 SL',
      'Intel 486 SX2',
      'Intel 486 DX2',
      'Intel 486 DX4',
      'Intel 486 DX4');
   UMC486           : Array[0..1] Of String =
      ('UMC U5D', 'UMC U5S');
   AMD486           : Array[0..5] Of String =
      ('AMD 486 DX2',
      'AMD 486 DX2',
      'AMD 486 DX4',
      'AMD 486 DX4',
      'AMD 5x86',
      'AMD 5x86');
   IntelP5          : Array[0..6] Of String =
      ('Intel Pentium P5 A-Step',
      'Intel Pentium P5',
      'Intel Pentium P54C',
      'Intel Pentium P24T Overdrive',
      'Intel Pentium MMX P55C',
      'Intel Pentium P54C',
      'Intel Pentium MMX P55C');
   NexGenNx586      = 'NexGen Nx586';
   Cyrix4x86        = 'VIA Cyrix 4x86';
   Cyrix5x86        = 'VIA Cyrix 5x86';
   CyrixMediaGX     = 'VIA Cyrix Media GX';
   CyrixM1          = 'VIA Cyrix 6x86';
   CyrixM2          = 'VIA Cyrix 6x86MX';
   CyrixIII         = 'VIA Cyrix III';
   AMDK5            : Array[0..3] Of String =
      ('AMD SSA5 (PR75/PR90/PR100)',
      'AMD 5k86 (PR120/PR133)',
      'AMD 5k86 (PR166)',
      'AMD 5k86 (PR200)');
   AMDK6            : Array[0..4] Of String =
      ('AMD K6 (166~233)',
      'AMD K6 (266~300)',
      'AMD K6-2',
      'AMD K6-III',
      'AMD K6-2+ or K6-III+');
   Centaur          : Array[0..2] Of String =
      ('Centaur C6',
      'Centaur C2',
      'Centaur C3');
   Rise             : Array[0..1] Of String =
      ('Rise mP6',
      'Rise mP6');
   IntelP6          : Array[0..7] Of String =
      ('Intel Pentium Pro A-Step',
      'Intel Pentium Pro',
      'Intel Pentium II',
      'Intel Pentium II',
      'Intel Pentium II',
      'Intel Pentium III',
      'Intel Pentium III',
      'Intel Pentium III');
   AMDK7            : Array[0..3] Of String =
      ('AMD Athlon(tm) Processor',
      'AMD Athlon(tm) Processor',
      'AMD Duron(tm) Processor',
      'AMD Thunderbird Processor');
   IntelP4          = 'Intel Pentium 4';
Var
   CpuData          : TCpuData;
Implementation

Function TCpuData.GetCPUIDSupport: Boolean;
Var
   TempDetect       : dword;
Begin
   Asm
    pushf
    pushfd
    push eax
    push ebx
    push ecx
    push edx

    pushfd
    pop eax
    mov ebx,eax
    xor eax,$00200000
    push eax
    popfd
    pushfd
    pop eax
    push ebx
    popfd
    xor eax,ebx
    mov TempDetect,eax

    pop edx
    pop ecx
    pop ebx
    pop eax
    popfd
    popf
   End;
   GetCPUIDSupport := (TempDetect = $00200000);
End;

Function TCpuData.GetVendorString: String;
Var
   s1, s2, s3       : Array[0..3] Of char;
   TempVendor       : String;
   i                : integer;
Begin
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,0
    dw $A20F               /// cpuid
    mov s1,ebx
    mov s2,edx
    mov s3,ecx
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   TempVendor := '';
   For i := 0 To 3 Do
      TempVendor := TempVendor + s1[i];
   For i := 0 To 3 Do
      TempVendor := TempVendor + s2[i];
   For i := 0 To 3 Do
      TempVendor := TempVendor + s3[i];
   GetVendorString := TempVendor;
End;

Function TCpuData.GetCPUFrequency: word;
Var
   TimeStart        : integer;
   TimeStop         : integer;
   StartTicks       : dword;
   EndTicks         : dword;
   TotalTicks       : dword;
   cpuSpeed         : dword;
   NeverExit        : Boolean;
Begin
   TimeStart := 0;
   TimeStop := 0;
   StartTicks := 0;
   EndTicks := 0;
   TotalTicks := 0;
   cpuSpeed := 0;
   NeverExit := true;
   TimeStart := timeGetTime;
   While NeverExit Do Begin
      TimeStop := timeGetTime;
      If ((TimeStop - TimeStart) > 1) Then Begin
         Asm
          xor eax,eax
          xor ebx,ebx
          xor ecx,ecx
          xor edx,edx
          dW $A20F               /// cpuid
          dW $310F                /// rdtsc
          mov StartTicks,eax
         End;
         Break;
      End;
   End;
   TimeStart := TimeStop;
   While NeverExit Do Begin
      TimeStop := timeGetTime;
      If ((TimeStop - TimeStart) > 1000) Then Begin
         Asm
           xor eax,eax
           xor ebx,ebx
           xor ecx,ecx
           xor edx,edx
           db $0F,$A2               /// cpuid
           db $0F,$31               /// rdtsc
           mov EndTicks,eax
         End;
         Break;
      End;
   End;
   TotalTicks := EndTicks - StartTicks;
   cpuSpeed := TotalTicks Div 1000000;
   GetCPUFrequency := cpuSpeed;
End;

Procedure TCpuData.GetFMS(Var Family, Model, Stepping: byte);
Var
   TempFlags        : dword;
   BinFlags         : Array[0..31] Of byte;
   i, Pos           : integer;
Begin
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,1
    db $0F,$A2               /// cpuid
    mov TempFlags,eax
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   For i := 0 To 31 Do Begin
      BinFlags[i] := TempFlags Mod 2;
      TempFlags := TempFlags Div 2;
   End;
   Family := 0;
   Model := 0;
   Stepping := 0;
   Pos := 0;
   For i := 0 To 3 Do Begin
      Stepping := Stepping + (BinFlags[Pos] * StrToInt(FloatToStr(Power(2,
         i))));
      inc(Pos);
   End;
   Pos := 4;
   For i := 0 To 3 Do Begin
      Model := Model + (BinFlags[Pos] * StrToInt(FloatToStr(Power(2, i))));
      inc(Pos);
   End;
   Pos := 8;
   For i := 0 To 3 Do Begin
      Family := Family + (BinFlags[Pos] * StrToInt(FloatToStr(Power(2,
         i))));
      inc(Pos);
   End;
End;

Function TCpuData.GetMaxCpuId: dword;
Var
   TempMax          : dword;
Begin
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,0
    db $0F,$A2               /// cpuid
    mov TempMax,eax
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   GetMaxCpuId := TempMax;
End;

Function TCpuData.CheckFPU: Boolean;
Label
   NoFpu;
Var
   TempCheck        : dword;
Begin
   TempCheck := 1;
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,1
    db $0F,$A2               /// cpuid
    test edx,$1
    jz NoFpu
    mov edx,0
    mov TempCheck,edx
  NoFpu:
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   CheckFPU := (TempCheck = 0);
End;

Function TCpuData.CheckTSC: Boolean;
Label
   NoTSC;
Var
   TempCheck        : dword;
Begin
   TempCheck := 1;
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,1
    db $0F,$A2               /// cpuid
    test edx,$10
    jz NoTSC
    mov edx,0
    mov TempCheck,edx
  NoTSC:
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   CheckTSC := (TempCheck = 0);
End;

Function TCpuData.CheckMSR: Boolean;
Label
   NoMSR;
Var
   TempCheck        : dword;
Begin
   TempCheck := 1;
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,1
    db $0F,$A2               /// cpuid
    test edx,$20
    jz NoMSR
    mov edx,0
    mov TempCheck,edx
  NoMSR:
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   CheckMSR := (TempCheck = 0);
End;

Function TCpuData.CheckMPS: Boolean;
Var
   SysInfo          : TSystemInfo;
Begin
   GetSystemInfo(SysInfo);
   CheckMPS := (SysInfo.dwNumberOfProcessors > 1);
End;

Function TCpuData.GetNoCpus: cardinal;
Var
   SysInfo          : TSystemInfo;
Begin
   GetSystemInfo(SysInfo);
   GetNoCpus := SysInfo.dwNumberOfProcessors;
End;

Function TCpuData.CheckPN: Boolean;
Label
   NoPN;
Var
   TempCheck        : dword;
Begin
   TempCheck := 1;
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,1
    db $0F,$A2               /// cpuid
    test edx,$40000
    jz NoPN
    mov edx,0
    mov TempCheck,edx
  NoPN:
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   CheckPN := (TempCheck = 0);
End;

Function TCpuData.CheckCMPXCHG8B: Boolean;
Label
   NoCMPXCHG8B;
Var
   TempCheck        : dword;
Begin
   TempCheck := 1;
   Asm
    push eax
    push ebx
    push ecx
    push edx
    mov eax,1
    db $0F,$A2               /// cpuid
    test edx,$100
    jz NoCMPXCHG8B
    mov edx,0
    mov TempCheck,edx
  NoCMPXCHG8B:
    pop edx
    pop ecx
    pop ebx
    pop eax
   End;
   CheckCMPXCHG8B := (TempCheck = 0);
End;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女厕所小便bbb| 久久亚洲春色中文字幕久久久| 一区在线观看视频| 不卡一区二区中文字幕| 国产精品蜜臀av| 91久久久免费一区二区| 性做久久久久久免费观看欧美| 欧美色爱综合网| 久久狠狠亚洲综合| 国产精品私人自拍| 欧美日韩国产小视频在线观看| 天堂在线一区二区| 国产亚洲欧美日韩日本| 在线观看国产一区二区| 蜜桃av噜噜一区| 国产欧美日韩在线| 日本精品视频一区二区| 日韩av电影天堂| 久久综合精品国产一区二区三区| www.亚洲国产| 亚洲高清在线精品| 国产欧美一区在线| 欧美性受xxxx| 国产成人免费xxxxxxxx| 亚洲精品乱码久久久久| 久久久激情视频| 色av综合在线| 国产成人久久精品77777最新版本| 一区在线中文字幕| 日韩欧美国产三级| 一本大道久久a久久精品综合| 日韩电影在线一区二区| 中文字幕在线一区二区三区| 91精品国产高清一区二区三区蜜臀 | 国产激情一区二区三区| 亚洲一区视频在线观看视频| 久久久久久99精品| 日本黄色一区二区| 国产成人丝袜美腿| 日韩av中文字幕一区二区| 1000精品久久久久久久久| 欧美电影精品一区二区| 在线精品视频免费播放| 成人av小说网| 精品一区二区三区久久久| 亚洲女同ⅹxx女同tv| 欧美精品一区二区三区蜜桃| 欧美视频完全免费看| 成人精品在线视频观看| 欧美男同性恋视频网站| av高清久久久| 国产裸体歌舞团一区二区| 天天综合网天天综合色| 亚洲图片你懂的| 国产日韩欧美精品一区| 欧美大白屁股肥臀xxxxxx| 91国产免费观看| av电影天堂一区二区在线| 极品美女销魂一区二区三区| 亚洲h精品动漫在线观看| 亚洲精品亚洲人成人网| 国产精品萝li| 中文字幕欧美三区| 国产婷婷精品av在线| 欧美成人精品3d动漫h| 欧美浪妇xxxx高跟鞋交| 欧美性猛交xxxx乱大交退制版| 色婷婷一区二区三区四区| 99久久精品免费| 本田岬高潮一区二区三区| 国产福利视频一区二区三区| 国产一区在线视频| 国产米奇在线777精品观看| 国产一区视频在线看| 狠狠色丁香婷婷综合| 国内精品在线播放| 国产乱妇无码大片在线观看| 国产酒店精品激情| 国产成人aaa| zzijzzij亚洲日本少妇熟睡| 99国产精品久久久| 91丨porny丨户外露出| 在线观看免费成人| 欧美剧情片在线观看| 欧美一区永久视频免费观看| 欧美一级免费大片| 久久综合狠狠综合久久综合88| 久久久综合网站| 国产精品欧美一区二区三区| 中文字幕在线一区二区三区| 亚洲黄色性网站| 性做久久久久久久免费看| 久久精品国产第一区二区三区| 激情成人午夜视频| 99视频精品在线| 欧洲视频一区二区| 日韩亚洲欧美综合| 久久久99久久| 亚洲精品菠萝久久久久久久| 亚洲午夜精品17c| 狠狠色狠狠色综合| 91色婷婷久久久久合中文| 欧美手机在线视频| 亚洲精品一区二区三区福利| 欧美高清一级片在线观看| 一区二区三区精品视频| 蜜桃av一区二区| aaa国产一区| 欧美日韩高清不卡| 中文字幕av一区二区三区高| 亚洲一区二区在线播放相泽| 日韩高清不卡一区| 成人三级在线视频| 欧美高清精品3d| 中文幕一区二区三区久久蜜桃| 午夜视频在线观看一区二区| 久久99精品国产.久久久久久| www.在线欧美| 日韩精品一区二区三区在线| 亚洲欧美日韩中文播放| 欧美日韩综合色| 久久久综合视频| 婷婷成人激情在线网| 丰满亚洲少妇av| 欧美嫩在线观看| 中文字幕日韩一区| 久久国产精品99精品国产| 日本韩国欧美一区二区三区| 2020国产成人综合网| 亚洲国产美国国产综合一区二区 | 国产精品88av| 欧美精选一区二区| 中文字幕字幕中文在线中不卡视频| 日韩电影在线一区二区三区| 91原创在线视频| 久久久精品蜜桃| 久久99在线观看| 欧美日韩日日骚| 亚洲视频在线观看一区| 国产乱码精品一区二区三区五月婷| 欧美伊人久久久久久午夜久久久久| 久久日韩精品一区二区五区| 午夜精品久久久久久久久久| 99精品久久久久久| 日本一区二区三区久久久久久久久不| 日本不卡中文字幕| 精品视频全国免费看| 亚洲精品欧美专区| 91免费国产视频网站| 国产精品午夜电影| 成人一级黄色片| 久久久久久免费网| 国产精一区二区三区| 日韩精品在线一区| 蜜桃免费网站一区二区三区| 6080国产精品一区二区| 亚洲第一会所有码转帖| 欧美视频一区二区三区在线观看 | 日韩一区二区精品葵司在线| 亚洲bt欧美bt精品| 欧美日韩一区成人| 亚洲aⅴ怡春院| 欧美绝品在线观看成人午夜影视| 亚洲成人中文在线| 欧美日韩国产免费一区二区| 亚洲资源在线观看| 欧美人成免费网站| 蜜臀99久久精品久久久久久软件| 777久久久精品| 美腿丝袜在线亚洲一区| 精品欧美久久久| 国产一区二区三区免费| 国产亚洲综合在线| 成人av先锋影音| 亚洲精品成人精品456| 欧美性做爰猛烈叫床潮| 日韩精品久久理论片| 精品国产91亚洲一区二区三区婷婷| 极品销魂美女一区二区三区| 久久香蕉国产线看观看99| 成人性生交大合| 一区二区三区四区av| 91精品国产91热久久久做人人| 免费在线观看视频一区| 久久综合久久鬼色| proumb性欧美在线观看| 亚洲永久免费视频| 欧美一区二区三区四区五区 | 亚洲一区在线看| 欧美一卡二卡三卡| 国产麻豆精品95视频| 中文字幕一区二区三| 日本乱码高清不卡字幕| 丝袜亚洲另类丝袜在线| 精品国产免费人成电影在线观看四季| 国内精品免费在线观看| 亚洲女人的天堂| 欧美电影免费观看高清完整版| 国产91高潮流白浆在线麻豆 | 日本亚洲天堂网|