• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

            路漫漫,長修遠(yuǎn),我們不能沒有錢
            隨筆 - 173, 文章 - 0, 評(píng)論 - 257, 引用 - 0
            數(shù)據(jù)加載中……

            [導(dǎo)入]在偶機(jī)器上找到一個(gè)讀cpu串號(hào)的代碼,delphi的,記錄一下(申明是人家的代碼)

            unit CPU;

            interface

            uses
              SysUtils;

            type
              TCPUID = array[1..4] of Longint;
              TVendor = array[0..11] of char;

            function GetCPUID: TCPUID; assembler; register;
            function GetCPUVendor: TVendor; assembler; register;
            function GetCPUInfo: string;

            implementation


            function GetCPUID: TCPUID; assembler; register;
            asm
             PUSH    EBX         {Save affected register}
             PUSH    EDI
             MOV     EDI,EAX      {@Resukt}
             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     EBX
            end;

            function GetCPUVendor: TVendor; assembler; register;
            asm
             PUSH    EBX          {Save affected register}
             PUSH    EDI
             MOV     EDI,EAX      {@Result (TVendor)}
             MOV     EAX,0
             DW      $A20F        {CPUID Command}
             MOV     EAX,EBX
             XCHG    EBX,ECX      {save ECX result}
             MOV     ECX,4
            @1:
             STOSB
             SHR     EAX,8
             LOOP    @1
             MOV     EAX,EDX
             MOV     ECX,4
            @2:
             STOSB
             SHR     EAX,8
             LOOP    @2
             MOV     EAX,EBX
             MOV     ECX,4
            @3:
             STOSB
             SHR     EAX,8
             LOOP    @3
             POP     EDI          {Restore registers}
             POP     EBX
            end;

            function GetCPUInfo: string;
            var
              CPUID: TCPUID;
              I: Integer;
              S: TVendor;
            begin
              for I := Low(CPUID) to High(CPUID) do
                CPUID[I] := -1;

              CPUID := GetCPUID;

              S := GetCPUVendor;

              Result := S + IntToHex(CPUID[1], 8) + IntToHex(CPUID[2], 8)
                + IntToHex(CPUID[3], 8)
                + IntToHex(CPUID[4], 8);
            end;


            end.


            以前中專d時(shí)候看ibm 8086/8088匯編有自己寫過這些代碼d,但是現(xiàn)在過了這么多年,退化到看不懂這些了

            posted on 2006-01-12 09:56 Khan 閱讀(1017) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Delphi

            噜噜噜色噜噜噜久久| 少妇内射兰兰久久| 久久国产免费观看精品| 日本精品久久久久中文字幕8| 午夜不卡888久久| 97精品伊人久久久大香线蕉| 久久精品国产精品亚洲精品| 日韩精品无码久久一区二区三| 久久久久久久精品妇女99| 伊人久久大香线蕉精品| 一本久久a久久精品亚洲| 久久伊人五月天论坛| av无码久久久久久不卡网站| 久久只有这精品99| 久久99精品国产99久久6| 国产精品久久久久久久久鸭 | 久久一区二区三区99| 国产成年无码久久久久毛片| 日日狠狠久久偷偷色综合0| 久久久国产乱子伦精品作者| 四虎国产精品成人免费久久| 久久国产成人| 久久天天躁狠狠躁夜夜不卡| 99久久精品国产一区二区| 久久狠狠色狠狠色综合| 久久婷婷五月综合色奶水99啪 | 国产精品免费久久| 国产情侣久久久久aⅴ免费| 亚洲精品无码久久一线| 亚洲av日韩精品久久久久久a| 久久无码专区国产精品发布| 久久91精品国产91久| 久久亚洲AV无码精品色午夜| 热久久视久久精品18| 久久这里只有精品首页| 国产香蕉久久精品综合网| 久久人人青草97香蕉| 久久亚洲精品成人av无码网站| 久久久女人与动物群交毛片| 久久亚洲私人国产精品| 久久免费精品一区二区|