ÈçºÎÓà DELPHI »ñÈ¡ CPU µÄÐòÁкÅ
ÔÚ¶àCPU»ò¶àºËCPUÖУ¬»áËæ»úµÄ»ñµÃ²»Í¬µÄÐòÁкÅ.Õâ¾ÍΪÎÒÃǸù¾ÝCPUÐòÁкÅÀ´ÖÆ×÷×¢²á»ú´øÀ´Á˺ܴóµÄÂé·³¡£
Windows 2000/XPÔÊÐíÉèÖýø³ÌºÍÏ̵߳ĹØÏµ¡£»»¾ä»°Ëµ£¬¿ÉÒÔ¿ØÖÆÄĸö CPU Äܹ»ÔËÐÐijЩÏ̡߳£Õâ³ÆÎªAffinity Mask¡£WindowsÌṩÁËÉèÖÃÏàËÆÐԵĺ¯ÊýSetProcessAffinityMask £¬Ê¹ÓÃËü¿É¿ØÖÆ»ñȡָ¶¨CPUµÄÐòÁкš£
1¡¢ÈçºÎ»ñµÃcpuµÄÐòÁкš£
ʹÓÃcpuidÖ¸ÁîÀ´»ñÈ¡¡£
ÔÚµ÷ÓÃCPUID֮ǰ£¬EAXÖдæ·ÅµÄÊǹ¦ÄÜ´úÂë¡£ÔÚµ÷ÓÃCPUIDÖ®ºó£¬EAX,EBX,ECX,EDX´æ·ÅµÄÊÇCPUµÄ¸÷ÖÖÌØÕ÷ÐÅÏ¢¡£ÕâЩÐÅÏ¢Ò²¾ÍÊÇÎÒÃÇͨ³£Ëù˵µÄCPUÐòÁкš£
1¡¢ÈçºÎ»ñµÃcpuµÄÐòÁкÅ?
ÎÒÃÇ¿ÉÒÔʹÓÃʹÓÃCPUIDÖ¸ÁîÀ´»ñÈ¡¡£
ÔÚµ÷ÓÃCPUID֮ǰ£¬EAXÖдæ·ÅµÄÊǹ¦ÄÜ´úÂë¡£ÔÚµ÷ÓÃCPUIDÖ®ºó£¬EAX,EBX,ECX,EDX´æ·ÅµÄÊÇCPUµÄ¸÷ÖÖÌØÕ÷ÐÅÏ¢¡£ÕâЩÐÅÏ¢Ò²¾ÍÊÇÎÒÃÇͨ³£Ëù˵µÄCPUÐòÁкš£
MOV EAX, 0 //»ñÈ¡ÖÆÔìÉÌÐÅÏ¢
CPUID
Mov EAX, 1 //»ñµÃCPUµÄÐòÁкÅ
CPUID
ÏÂÃæ½«ÌṩÈý¸öº¯Êý¹©²Î¿¼£º
function NewCPUID: string;
const
CPUINFO = 'CPUÖÆÔìÉÌ: %S ÐòÁкÅ: %x';
var
s: array[0..19] of Char;
MyCpuID: Integer;
begin
FillChar(s, 20, 0);
asm
push ebx
push ecx
push edx
mov eax, 0
cpuid
mov dword ptr s[0], ebx
mov dword ptr s[4], edx
mov dword ptr s[8], ecx
mov eax, 1
cpuid
mov MyCpuID, edx
pop edx
pop ecx
pop ebx
end;
Result := Format(CPUINFO, [s, MyCpuID]);
end;
function GetCPUID: TCPUID; assembler; register;
asm
PUSH EBX {Save affected register}
PUSH EDI
MOV EDI, EAX [email={@Resukt]{@Resukt[/email]}
MOV EAX, 1
DW $A20F {CPUID Command}
STOSD {CPUID[1]}
MOV EAX, EBX
STOSD {CPUID[2]}
MOV EAX, ECX
STOSD {CPUID[3]}
MOV EAX, EDX
STOSD {CPUID[4]}
POP EDI {Restore registers}
POP
Ïà¹ØÎĵµ£º
DelphiʹÓÃ×ÊÔ´ÎļþÈ«¹¥ÂÔ
ÔÚͨ³£Çé¿öÏÂʹÓÃdelphiÉè¼Æ³ÌÐò£¬¶¼Êǽ«×Ö·û´®¡¢Í¼ÏñµÈ×ÊÔ´Ö±½ÓʹÓÃdelphiÌṩµÄvcl¿Ø¼þ¼Óµ½*.dfmÖУ¬ÕâÑù×ö»áºÏÐÞ¸ÄÕâЩ×ÊԴʱ´øÀ´²»±ã£¬Èç¹û×ÊÔ´±»¶à´ÎÒýÓã¬ÕâЩ×ÊÔ´ÔÚ³ÌÐòÆô¶¯Ê±¶¼±»¼ÓÔØµ½ÄÚ´æÖУ¬·Ç³£ºÄ·Ñϵͳ×ÊÔ´¡£Òò´Ë£¬Õâ¾ÍÐèÒªÒ»ÖÖеÄÒýÓÃ×ÊÔ´µÄÎļþ£º×ÊÔ´Îļþ¡£×ÊÔ´ ......
»¥³âÁ¿ÊÇϵͳÄں˶ÔÏó£¬ËÓµÓоÍËÖ´ÐС£ËüÓëÁÙ½çÇø¹¤×÷ºÜÀàËÆ¡£²»Í¬´¦ÔÚÓÚ£º1¡¢»¥³âÁ¿¿ÉÒÔ¿ç½ø³Ì±ß½çͬ²½Ï̡߳£2¡¢¿ÉÒÔ¸ø»¥³âÁ¿È¡¸öÃû×Ö£¬Í¨¹ýÒýÓû¥³âÁ¿µÄÃû×ÖÀ´Ê¹ÓÃÒ»¸öÒÑÖªµÄ»¥³âÁ¿¶ÔÏó¡£
ʹÓû¥³âÁ¿Ö®ÀàµÄ¶ÔÏóÐèÒª·´¸´µ÷ÓÃϵͳÄںˣ¬ÆÚ¼äÐèÒª½øÐнø³ÌÉÏÏÂÎÄת»»ºÍ¿ØÖƼ¶±ðת»»£¬´ó¸ÅÐèÒªºÄ· ......
ÐźÅÁ¿Êǽ¨Á¢ÔÚ»¥³âÁ¿µÄ»ù´¡Ö®ÉÏ£¬Í¬Ê±¼ÓÈëÖØÒªÌØÐÔ£ºÌṩÁË×ÊÔ´¼ÆÊý¹¦ÄÜ£¬Òò´ËÔ¤¶¨ÒåÊýÁ¿µÄÏß³Ìͬʱ¿ÉÒÔ½øÈëͬ²½µÄ´úÂë¿éÖС£
ÐźÅÁ¿ÊÇά»¤0µ½Ö¸¶¨×î´óÖµÖ®¼äµÄ¼ÆÊýÆ÷µÄͬ²½¶ÔÏ󣬵±Ïß³ÌÍê³ÉÒ»´ÎÐźÅÁ¿µÄµÈ´ýʱ£¬¼ÆÊýÆ÷×Ô¼õ1£¬µ±Ïß³ÌÊÍ·ÅÐźÅÁ¿¶ÔÏóʱ£¬¼ÆÊýÆ÷×ÔÔö1¡£
......
Ò»¸öÏ̵߳ÄÓÅÏȼ¶È¡¾öÓÚ´´½¨Ï̵߳Ľø³ÌµÄÓÅÏȼ¶£¨priority class£©ºÍÏ̱߳¾ÉíÏà¶ÔµÄÓÅÏȼ¶£¨relative priority£©¡£
1¡¢½ø³ÌÓÅÏȼ¶£º
²»Í¬²Ù×÷ϵͳ ÓÅÏȼ¶ÊýÄ¿²»Í¬¡£Windows2000ÒÔÉϵİ汾ÁбíÈçÏ£º
Idle£º£¨±êÖ¾£ºIDLE_PRIORITY_CLASS£¬ÖµÎª$40£©£»
Below Normal£º£¨±êÖ¾£ºBEL ......
============================================================================
Windows95ÊÇMicrosoft¹«Ë¾µÄµÚÒ»¸öÕæÕýµÄ¶àÈÎÎñ²Ù×÷ϵͳ¡£ÔÚÿһʱ¿Ì¿ÉÒÔÓжà¸ö½ø³Ìͬʱ¹¤×÷£¬¶øÃ¿Ò»¸ö½ø³ÌÓÖ°üº¬Óжà¸öÏ̡߳£µ«Ö»ÓÐÒ»¸ö´¦ÀíÆ÷µÄ¼ÆËã»ú²»¿ÉÄÜÕæÕýµØ“ͬʱ”Ö´Ðжà¸öỊ̈߳¬¶øÊDzÙ×÷ϵͳ°Ñʱ¼ä·Ö³ÉÈô¸É¸öʱ¼äƬ£¬ ......