С целью получения практических навыков по разработке и выполнению программ, определяющих тип ЦПУ, необходимо самостоятельно составить программу в соответствии с вариантом задания (п. 1.7).
Следует знать, что не существует единственного универсального метода идентификации всех микропроцессоров Intel-архитектуры семейства x86. Для определения типа любого из процессоров указанного семейства необходимо совместное использование нескольких методов.
Простым и, в то же время, надежным способом идентификации является контроль за изменением разрядов в регистре флагов (EFLAGS). При этом используются следующие биты регистра флагов (рисунок 1.1):
— флаг идентификации ID. Предназначен для проверки, поддерживается ли процессором команда CPUID. Если в программе можно установить и сбросить этот флаг, значит команда CPUID данным процессором поддерживается;
— флаг ожидания виртуального прерывания VIP. Как и флаг VIF, позволяет каждой прикладной программе в многозадачном режиме иметь виртуальную версию флага IF;
— флаг виртуального прерывания VIF. Этот флаг является виртуальным подобием флага IF, используется совместно с VIP;
— флаг контроля выравнивания AC. Установкой флага AC и бита AM регистра CR0 включается контроль выравнивания при обращении к памяти;
— флаг виртуального режима VM. Установкой флага VM процессор переключается в режим виртуального 8086;
— флаг возобновления RF. Временно выключает обработку особых случаев отладки для того, чтобы команда, вызвавшая такую ситуацию, могла быть перезапущена и не стала бы причиной новой особой ситуации. Отладчик устанавливает этот флаг командой IRETD при возврате в прерванную программу;
— флаг вложенной задачи NT. Процессор устанавливает и проверяет этот флаг для контроля за прерванными задачами и при вызове процедур. Флаг NT влияет на выполнение команды IRET;
— уровень привилегий ввода-вывода IOPL. Уровень привилегий ввода-вывода используется механизмом защиты для управления доступом к адресному пространству ввода-вывода.
Рисунок 1.1 — Регистр EFLAGS
Флаги ID, VIP и VIF присутствуют в регистре флагов процессоров, начиная с Pentium, AC — в процессорах i486 и выше. Флаги IOPL и NT впервые использованы в процессорах i286, а VM и RF — i386.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.