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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? getcpuid.pas

?? 一個售樓系統(tǒng)
?? 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美无人高清视频在线观看| 亚洲成人久久影院| 国产91精品精华液一区二区三区| 久久男人中文字幕资源站| 另类中文字幕网| 久久久午夜精品理论片中文字幕| 粉嫩在线一区二区三区视频| 亚洲欧洲av另类| 欧美色欧美亚洲另类二区| 日韩av网站在线观看| 精品国产伦一区二区三区观看方式| 国产尤物一区二区| 综合激情网...| 欧美久久久久久久久久| 极品少妇一区二区| 国产精品另类一区| 欧美精品免费视频| 国产一区二区精品在线观看| 日韩一区欧美一区| 欧美日韩国产首页| 国产激情一区二区三区| 一区二区在线看| 欧美成人一区二区三区片免费| 成人一区二区视频| 午夜一区二区三区在线观看| 精品国精品自拍自在线| 91麻豆免费视频| 日韩二区三区在线观看| 久久久美女艺术照精彩视频福利播放| 一道本成人在线| 久久国产福利国产秒拍| 夜夜嗨av一区二区三区网页 | 成人午夜在线免费| 亚洲成av人片在线观看| 久久精品视频一区二区| 欧美精品久久久久久久多人混战| 国产一区二区三区蝌蚪| 午夜精品久久久久久久99水蜜桃| 中文字幕成人av| 欧美电视剧在线看免费| 在线日韩一区二区| 成人污污视频在线观看| 蜜臀av一级做a爰片久久| 亚洲欧美另类综合偷拍| 欧美哺乳videos| 欧美日韩视频专区在线播放| 成人精品高清在线| 麻豆精品在线视频| 亚洲福中文字幕伊人影院| 国产精品国产三级国产三级人妇| 日韩欧美国产午夜精品| 欧美午夜一区二区| 91在线观看美女| 高清不卡在线观看av| 久88久久88久久久| 图片区小说区国产精品视频| 亚洲精品视频免费看| 国产精品私房写真福利视频| 欧美tickle裸体挠脚心vk| 欧美精选午夜久久久乱码6080| 91视频国产观看| 成人黄色a**站在线观看| 国产一区二区三区日韩 | 国产拍欧美日韩视频二区| 日韩一区二区视频| 欧美日韩国产影片| 欧美日韩亚州综合| 欧美私人免费视频| 91成人免费电影| 91久久香蕉国产日韩欧美9色| av中文字幕在线不卡| 成人免费视频视频| 成人一区二区三区在线观看| 国产麻豆9l精品三级站| 国产一区二区电影| 91丨九色porny丨蝌蚪| 国产精品99久久久| 大尺度一区二区| 99久久精品99国产精品 | 亚洲在线成人精品| 亚洲一区二区在线播放相泽| 亚洲国产日产av| 五月激情综合网| 免费观看在线色综合| 久久99蜜桃精品| 国产精品一品视频| av中文一区二区三区| 色一情一乱一乱一91av| 欧美亚洲动漫精品| 欧美一区二区视频在线观看2020| 欧美一区二区三区在线| 日韩精品一区二区三区视频| 久久久久高清精品| 国产精品国产三级国产aⅴ原创| 国产精品欧美极品| 综合网在线视频| 丝袜亚洲精品中文字幕一区| 另类小说综合欧美亚洲| 国产盗摄视频一区二区三区| 波波电影院一区二区三区| 色婷婷综合视频在线观看| 欧美在线制服丝袜| 日韩欧美视频在线| 中文字幕在线免费不卡| 天堂一区二区在线| 国产精品中文字幕一区二区三区| 99久久精品久久久久久清纯| 欧美日韩一区二区三区四区| 日韩一级二级三级精品视频| 国产婷婷色一区二区三区在线| 亚洲激情中文1区| 日韩成人免费电影| 成人精品一区二区三区中文字幕| 在线免费精品视频| 2023国产精品| 亚洲精品水蜜桃| 国产在线精品视频| 欧美午夜免费电影| 欧美国产成人精品| 首页综合国产亚洲丝袜| 成人精品免费网站| 678五月天丁香亚洲综合网| 国产精品无码永久免费888| 亚洲国产另类精品专区| 国产盗摄视频一区二区三区| 欧美日韩国产综合草草| 中文子幕无线码一区tr| 男人的天堂久久精品| 色综合久久久久久久久久久| 26uuu另类欧美亚洲曰本| 亚洲午夜精品一区二区三区他趣| 国产成人aaa| 欧美一区二区三区系列电影| 亚洲美女免费视频| 国产风韵犹存在线视精品| 91精品国产综合久久久久久久 | 亚洲成人免费在线观看| 粉嫩蜜臀av国产精品网站| 91精品麻豆日日躁夜夜躁| 亚洲精品老司机| 国产精品99久| 2欧美一区二区三区在线观看视频| 亚洲国产aⅴ天堂久久| av激情成人网| 国产欧美日韩在线观看| 精品一区二区免费看| 欧美日韩激情在线| 亚洲美女视频一区| 99精品欧美一区二区蜜桃免费 | 91网址在线看| 国产欧美日韩在线观看| 国产麻豆成人精品| 欧美精品一区二区在线观看| 日韩精品亚洲专区| 欧美精选一区二区| 天堂蜜桃91精品| 欧美日韩国产片| 午夜婷婷国产麻豆精品| 欧美日韩一区二区三区四区| 一区二区三区小说| 在线观看免费成人| 亚洲综合视频在线| 欧美日韩一级黄| 午夜a成v人精品| 91精品在线麻豆| 免费精品视频在线| 欧美不卡在线视频| 国产精品自拍网站| 久久久久久一二三区| 国产麻豆精品一区二区| 国产视频一区在线观看| 国产成人免费网站| 国产精品剧情在线亚洲| 色一情一伦一子一伦一区| 亚洲欧美另类综合偷拍| 欧美三级欧美一级| 亚洲成人资源在线| 日韩一级片在线播放| 国产麻豆视频一区二区| 欧美国产成人精品| 91在线视频播放地址| 一区二区免费在线播放| 666欧美在线视频| 国精产品一区一区三区mba视频| 国产三区在线成人av| 99久久久久免费精品国产 | 国产精品久久三| 91黄色免费看| 久久国产剧场电影| 欧美激情中文不卡| 在线精品观看国产| 精品一区二区在线免费观看| 中文字幕欧美日韩一区| 91高清视频在线| 日韩成人一区二区| 国产精品传媒视频| 欧美日韩美少妇| 国产精品一区二区在线观看不卡 | 国产一区二区不卡在线| 亚洲三级在线播放|