Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÈçºÎÓà 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Éè¼Æ³ÌÐò£¬¶¼Êǽ«×Ö·û´®¡¢Í¼ÏñµÈ×ÊÔ´Ö±½ÓʹÓÃdelphiÌṩµÄvcl¿Ø¼þ¼Óµ½*.dfmÖУ¬ÕâÑù×ö»áºÏÐÞ¸ÄÕâЩ×ÊԴʱ´øÀ´²»±ã£¬Èç¹û×ÊÔ´±»¶à´ÎÒýÓã¬ÕâЩ×ÊÔ´ÔÚ³ÌÐòÆô¶¯Ê±¶¼±»¼ÓÔØµ½ÄÚ´æÖУ¬·Ç³£ºÄ·Ñϵͳ×ÊÔ´¡£Òò´Ë£¬Õâ¾ÍÐèÒªÒ»ÖÖеÄÒýÓÃ×ÊÔ´µÄÎļþ£º×ÊÔ´Îļþ¡£×ÊÔ´ ......

Delphi¶àÏß³Ìѧϰ£¨5£©£º»¥³âÁ¿Mutex

»¥³âÁ¿ÊÇϵͳÄں˶ÔÏó£¬Ë­ÓµÓоÍË­Ö´ÐС£ËüÓëÁÙ½çÇø¹¤×÷ºÜÀàËÆ¡£²»Í¬´¦ÔÚÓÚ£º1¡¢»¥³âÁ¿¿ÉÒÔ¿ç½ø³Ì±ß½çͬ²½Ï̡߳£2¡¢¿ÉÒÔ¸ø»¥³âÁ¿È¡¸öÃû×Ö£¬Í¨¹ýÒýÓû¥³âÁ¿µÄÃû×ÖÀ´Ê¹ÓÃÒ»¸öÒÑÖªµÄ»¥³âÁ¿¶ÔÏó¡£
     ʹÓû¥³âÁ¿Ö®ÀàµÄ¶ÔÏóÐèÒª·´¸´µ÷ÓÃϵͳÄںˣ¬ÆÚ¼äÐèÒª½øÐнø³ÌÉÏÏÂÎÄת»»ºÍ¿ØÖƼ¶±ðת»»£¬´ó¸ÅÐèÒªºÄ· ......

Delphi¶àÏß³Ìѧϰ£¨6£©£ºÐźÅÁ¿Semaphore

ÐźÅÁ¿Êǽ¨Á¢ÔÚ»¥³âÁ¿µÄ»ù´¡Ö®ÉÏ£¬Í¬Ê±¼ÓÈëÖØÒªÌØÐÔ£ºÌṩÁË×ÊÔ´¼ÆÊý¹¦ÄÜ£¬Òò´ËÔ¤¶¨ÒåÊýÁ¿µÄÏß³Ìͬʱ¿ÉÒÔ½øÈëͬ²½µÄ´úÂë¿éÖС£
      ÐźÅÁ¿ÊÇά»¤0µ½Ö¸¶¨×î´óÖµÖ®¼äµÄ¼ÆÊýÆ÷µÄͬ²½¶ÔÏ󣬵±Ïß³ÌÍê³ÉÒ»´ÎÐźÅÁ¿µÄµÈ´ýʱ£¬¼ÆÊýÆ÷×Ô¼õ1£¬µ±Ïß³ÌÊÍ·ÅÐźÅÁ¿¶ÔÏóʱ£¬¼ÆÊýÆ÷×ÔÔö1¡£
    ......

Delphi¶àÏß³Ìѧϰ(8)£ºÓÅÏȼ¶

Ò»¸öÏ̵߳ÄÓÅÏȼ¶È¡¾öÓÚ´´½¨Ï̵߳Ľø³ÌµÄÓÅÏȼ¶£¨priority class£©ºÍÏ̱߳¾ÉíÏà¶ÔµÄÓÅÏȼ¶£¨relative priority£©¡£
    1¡¢½ø³ÌÓÅÏȼ¶£º
    ²»Í¬²Ù×÷ϵͳ ÓÅÏȼ¶ÊýÄ¿²»Í¬¡£Windows2000ÒÔÉϵİ汾ÁбíÈçÏ£º
Idle£º£¨±êÖ¾£ºIDLE_PRIORITY_CLASS£¬ÖµÎª$40£©£»
Below Normal£º£¨±êÖ¾£ºBEL ......

ÓÃDelphi±à³Ìʱ ÈçºÎÀûÓÃÏß³Ì

============================================================================
Windows95ÊÇMicrosoft¹«Ë¾µÄµÚÒ»¸öÕæÕýµÄ¶àÈÎÎñ²Ù×÷ϵͳ¡£ÔÚÿһʱ¿Ì¿ÉÒÔÓжà¸ö½ø³Ìͬʱ¹¤×÷£¬¶øÃ¿Ò»¸ö½ø³ÌÓÖ°üº¬Óжà¸öÏ̡߳£µ«Ö»ÓÐÒ»¸ö´¦ÀíÆ÷µÄ¼ÆËã»ú²»¿ÉÄÜÕæÕýµØ“ͬʱ”Ö´Ðжà¸öỊ̈߳¬¶øÊDzÙ×÷ϵͳ°Ñʱ¼ä·Ö³ÉÈô¸É¸öʱ¼äƬ£¬ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ