"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como acessar informações da CPU no Linux usando a instrução `cpuid`?

Como acessar informações da CPU no Linux usando a instrução `cpuid`?

Publicado em 2024-11-09
Navegar:447

How to Access CPU Information in Linux Using the `cpuid` Instruction?

Acessando informações da CPU no Linux usando a instrução cpuid

Nesta questão, um desenvolvedor busca acessar informações da CPU em um ambiente Linux usando um método semelhante à função _cpuinfo() na API do Windows. O código fornecido tenta utilizar instruções de montagem (cpuid) para recuperar essas informações, mas o desenvolvedor deseja evitar a necessidade de montagem manual.

A solução está na utilização do arquivo de cabeçalho cpuid.h disponível ao compilar o código com CCG. Este cabeçalho declara duas funções:

unsigned int __get_cpuid_max(unsigned int __ext, unsigned int *__sig);
int __get_cpuid(unsigned int __level, unsigned int *__eax, unsigned int *__ebx, unsigned int *__ecx, unsigned int *__edx);

A função __get_cpuid_max retorna o valor de entrada mais alto suportado para a instrução cpuid. Você pode especificar __ext como 0x0 para informações básicas ou 0x8000000 para informações estendidas.

A função __get_cpuid recupera informações da CPU para um nível especificado e retorna os dados nos registros eax, ebx, ecx e edx. Ele retorna um valor diferente de zero se for bem-sucedido e zero se o nível solicitado não for compatível.

Exemplo de uso:

#include 
#include 

int main() {
  unsigned int eax, ebx, ecx, edx;

  // Get maximum supported CPUID level
  unsigned int max_level = __get_cpuid_max(0x0, NULL);

  // Iterate over different CPUID levels
  for (unsigned int level = 0; level 
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3