«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как получить доступ к информации о процессоре в Linux с помощью инструкции cpuid?

Как получить доступ к информации о процессоре в Linux с помощью инструкции cpuid?

Опубликовано 9 ноября 2024 г.
Просматривать:427

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

Доступ к информации о процессоре в Linux с помощью инструкции cpuid

В этом вопросе разработчик пытается получить доступ к информации о процессоре в среде Linux с помощью метод, аналогичный функции _cpuinfo() в Windows API. Предоставленный код пытается использовать инструкции ассемблера (cpuid) для получения этой информации, но разработчик хочет избежать необходимости ручной сборки.

Решение заключается в использовании заголовочного файла cpuid.h, доступного при компиляции кода с помощью ССЗ. Этот заголовок объявляет две функции:

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);

Функция __get_cpuid_max возвращает наибольшее поддерживаемое входное значение для инструкции cpuid. Вы можете указать __ext как 0x0 для базовой информации или 0x8000000 для расширенной информации.

Функция __get_cpuid извлекает информацию о ЦП для указанного уровня и возвращает данные в регистры eax, ebx, ecx и edx. Он возвращает ненулевое значение в случае успеха и ноль, если запрошенный уровень не поддерживается.

Пример использования:

#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 
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3