zoukankan      html  css  js  c++  java
  • 获取CPU序列号的Delphi程序

    Unit CPUid; 
    
     Interface 
    
     Type 
    
     TCpuType = (cpu8086, cpu286, cpu386, cpu486, cpuPentium); 
    
     Function CpuType : TCpuType; 
     Function CpuTypeString : String; 
    
     Implementation 
    
     Uses 
     SysUtils; 
    
     Function CpuType : TCpuType; ASSEMBLER; 
     Asm 
     // 8086 CPU 检测
    push ds 
     pushf 
     pop bx 
     mov ax, 0fffh 
     and ax, bx 
     push ax 
     popf 
     pushf 
     pop ax 
     and ax, 0f000h 
     cmp ax, 0f000h 
     mov ax, cpu8086 
     je @@End_CpuType 
    
     // 80286 CPU检测 
    
    or bx, 0f000h 
     push bx 
     popf 
     pushf 
     pop ax 
     and ax, 0f000h 
     mov ax, cpu286 
     jz @@End_CpuType 
    
     // 386 CPU 检测
    
    db 66h 
     pushf 
     db 66h 
     pop ax 
     db 66h 
     mov cx, ax 
     db 66h 
     xor ax, 0h 
     dw 0004h 
     db 66h 
     push ax 
     db 66h 
     popf 
     db 66h 
     pushf 
     db 66h 
     pop ax 
     db 66h 
     xor ax, cx 
     mov ax, cpu386 
     je @@End_CpuType 
    
     // 486 CPU 检测
    
    db 66h 
     pushf 
     db 66h 
     pop ax 
     db 66h 
     mov cx, ax 
     db 66h 
     xor ax, 0h 
     dw 0020h 
     db 66h 
     push ax 
     db 66h 
     popf 
     db 66h 
     pushf 
     db 66h 
     pop ax 
     db 66h 
     xor ax, cx 
     mov ax, cpu486 
     je @@End_CpuType 
    
     // Pentium CPU 检测
    
    db 66h 
     mov ax, 1 
     dw 0 
     db 66h 
     db 0Fh 
     db 0a2h 
     db 66h 
     and ax, 0F00H 
     dw 0 
     db 66h 
     shr ax, 8 
     sub ax, 1 
    
     @@End_CpuType: 
    
     pop ds 
    
     End; 
    
     Function CpuTypeString : String; 
    
     Var 
    
     Kind : TCpuType; 
    
     Begin 
    
     Kind := CpuType; 
    
     Case Kind Of 
    
     cpu8086 : Result := '8086'; 
     cpu286 : Result := '286'; 
     cpu386 : Result := '386'; 
     cpu486 : Result := '486'; 
     cpuPentium : Result := 'Pentium'; 
    
     Else Result := Format ('P%d', [Ord (kind)]); 
    
     End; 
    
     End; 
    
     End.
    
  • 相关阅读:
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周&java实验报告四
    第五周课程总结&试验报告(三)
    第四周作业
    2019春总结作业
    第二周基础作业
    第三周作业
    2019期末总结
    第十四周课程总结 & 实验报告
  • 原文地址:https://www.cnblogs.com/China3S/p/9630420.html
Copyright © 2011-2022 走看看