#ассемблер
Здравствуйте! Как можно с помощью ассемблерных вставок получить сведения о процессоре? Дополнено. Вот нашел команду cpuid и код: mov ЕАХ,О cpuid ;EAX=0001h mov mem, ЕВХ mov mem+4, EDX mov mem+8, ECX ;mem='Genuinelntel' cpuid EAX=543h (например) ,EDX = lBFh Но как это сделать вставкой на том же C?
Ответы
Ответ 1
Инструкция cpuid предназначена для получения информации о процессоре. Для некоторых компиляторов она доступна как расширение языка __cpuid. Пример использования int main() { int a, b; for (a = 0; a < 3; a++) { __asm("cpuid":"=a"(b) // EAX - в b (вывод) : "a"(a) // a - в EAX (ввод) : "%ebx", "%ecx", "%edx"); // cpuid всегда задействует их printf("Этот код %i дает %i\n", a, b); } return 0; }Ответ 2
Если не получается сделать это inline-ассемблером в C, то попробуй написать на чистом ассемблере функции, возвращающие тебе нужную информацию, и собрать их в obj-файл. Этот obj файл подключи к компоновке, и в C можно будет использовать нужные функции, объявив их прототипы.
Комментариев нет:
Отправить комментарий