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.
    
  • 相关阅读:
    Git 初识
    AJAX
    vue router 如何使用params query传参,以及有什么区别
    【javascript语言精粹】第六章 数组
    【js语言精粹】第四章 函数
    【js高级程序设计】迭代器
    【js高级程序设计】第三章
    [js高级程序设计]第二章
    csrf攻击
    js 排序算法总结
  • 原文地址:https://www.cnblogs.com/China3S/p/9630420.html
Copyright © 2011-2022 走看看