Разработка программы на языке Ассемблер для определения типа центрального процессора и его производительности. Основные этапы определения любого существующего Intel-совместимого процессора. Тактовая частота процессора, алгоритм и листинг программы.
Данная курсовая работа посвящена разработке программы на ассемблере для определения типа центрального процессора и его производительности.В любом процессоре сразу после аппаратного сброса в регистре (E) DX можно прочитать номер семейства (3 - 386, 4 - 486, 5 - Pentium, 6 - P6.), модели, типа и степпинга. Поскольку BIOS ориентирован на процессоры одного поколения (семейства), проблем с различием использования регистра (E) DX не возникает. Начиная с процессоров Pentium появилась новая инструкция CPUID, по которой любая программа на любом уровне привилегий в любой момент времени может получить ту же информацию, что и BIOS после сброса, и, вдобавок, 32-битный набор флагов расширений базовой архитектуры, реализованных в данном процессоре.CPUID (CPU Identification) - ассемблерная мнемоника инструкции процессоров x86 , используется для получения информации о процессоре. Используя ее, программа может определить тип ЦП и его возможности (например, можно определить, какие расширения поддерживаются процессором). В том же EFLAGS нужно попробовать изменить бит ID (21), если его можно программно изменить - процессор поддерживает инструкцию CPUID. Обычно в ответ на вызов CPUID с EAX=0 процессор возвращает в ЕАХ максимальное Инструкция CPUID по содержимому регистра EAX определяет какого рода информацию о процессоре необходимо вернуть. Для того, чтобы получить информацию о дополнительных функциях, имеющихся в процессорах, в регистре EAX перед вызовом CPUID должен быть установлен бит 31.11 Поддержка инструкций SYSENTER и SYSEXIT (для AMD - SYSCALL и SYSRET) 13 Поддержка бита глобальности в элементах каталога страниц 15 Поддержка инструкций условной пересылки CMOVXX21 Поддержка отладочной записи истории переходовСовместимые с Intel процессоры AMD и Cyrix поддерживают вызов "расширенных функций" CPUID со значениями ЕАХ, в которых самый старший бит всегда установлен в 1. ЕАХ = 80000000h: Возвращает в ЕАХ максимальный номер расширенной функции CPUID, поддерживаемой данным процессором. Бит 5 EDX "MSR" - Процессор поддерживает машинно-специфичные регистры, совместимые с К5. Бит 10 EDX Процессор поддерживает команды SYSCALL и SYSRET.Read Time Stamp Counter) - ассемблерная инструкция для платформы x86 , читающая счетчик TSC (Time Stamp Counter) и возвращающая в регистрах EDX: EAX 64-битное количество тактов с момента последнего сброса процессора. rdtsc поддерживается в процессорах Pentium и более новых. В современных процессорах Intel , счетчик TSC не зависит от использования технологий энергосбережения и увеличивается на 1 каждый такт, вне зависимости от того, работал ли процессор или находился в состоянии сна.При запуске программы на экран выводится титульный лист, после чего работа программы приостанавливается до нажатия клавиши.