Quantidade de processadores

Top  Previous  Next

// a funcao abaixo GetProcessorCount, tem alguma coisa com além mundo virtual

// nao permite uso direto, apenas via variavel como exemplo abaixo:

//

//  var

//    C: Byte;

//  begin

//    C := GetProcessorCount;

//    Caption := IntToStr(C);

//  end;

 

function GetProcessadorCount: Byte;

var

  _eax, _ebx, _ecx, _edx: Longword;

begin

 asm

    mov eax,1

    db $0F,$A2

    mov _eax,eax

    mov _ebx,ebx

    mov _ecx,ecx

    mov _edx,edx

  end;

  Result := lo(_ebx shr 16);

end;