|
Определение конфигурации с помощью BIOSВо время инициализации системыBIOS опрашивает порты, к которым подключены перемычки, и определяет содержимое ячеек памяти CMOS, содержащие информацию о конфигурации компьютера. Результат записывается в область данных BIOS, откуда программа может его извлечь с помощью прерываний BIOS. Сведения о наличии основных устройств компьютера записывается в область данных BIOS с адресом 0000:0410 размером в двухбайтовое слово - слово конфигурации. С помощью прерывания INT 11h программа может получить в регистре AX слово конфигурации из указанной выше области данных BIOS.
Программа HDWCFG Программа HDWCFG определяет конфигурацию аппаратных средств компьютера, пользуясь для этого описанными выше функциями BIOS. Полученная конфигурация отображается на консоли, как это показано ниже: Configuration word: C823 HDD present NPU present RAM banks: 0 Video Mode: 2 Nubber of FDD: 1 Nubber of COM ports: 2 Number of LPT ports: 3 RAM istalled: 640 Kbytes Extended RAM istalled: 0 Код модели компьютера и версия BIOS На этапе инициализации BIOS записывает в свою область данных по адресу FFFFh:FFFEh байт идентификатора модели компьютера. Ниже мы привели возможные значения этого байта:
Более подробную информацию можно получить, вызвав функцию C0h прерывания BIOS INT 15h:
После выполнения прерывания регистры ES:BX будут указывать на таблицу в области ПЗУ BIOS. В этой таблице имеется более точная информация о типе компьютера, номер версии BIOS, сведения об аппаратных особенностях конкретной модели. Приведем формат указанной таблицы:
Ниже мы привели описание отдельных бит байта конфигурации аппаратных средств.
Программа BIOSINFO Программа BIOSINFO получает и отображает на консоли дату изготовления версии BIOS, а также содержимое таблицы конфигурации, адрес которой определяется с помощью функции C0h прерывания BIOS INT 15h: BIOS data: 10/01/13 BIOSINFO address: 0212:0190 BIOSINFO Size: 8 Model: FC SubModel: 1 BIOS Revision: 0 Hardvare Cfg: 70 Reserved1: 00 Reserved2: 00 Hardware configuration ---------------------- Second IRQ Controller 8259 Real Time Clock Used function 4Fh INT 15h ISA Bus installed Определение типа центрального процессора В некоторых случаях эффективность работы программы можно заметно повысить, если использовать команды новых моделей процессоров Pentium, такие как, например, команды MMX. На сервере Intel с адресом http://www.intel.com вы найдете исчерпывающую информацию о том, как распознать различные модели процессоров, созданных этой фирмой. В нашей книге мы рассмотрим упрощенную методику, которая, тем не менее, может быть использована в большинстве случаев. Программа CPUINFO определяет модель и характеристики процессора, пользуясь только что описанной нами методикой. Полученная информация выводится на консоль в следующем виде: CPU model: 5 Vendor ID: GenuineIntel CPU Signature 00000619 CPU Feature EDX 0000F9FF CPU type: 0 CPU family: 6 CPU model: 1 CPU stepping: 9 FPU detected В листинге 1.1 вы найдете исходный текст модуля, составленного на языке ассемблера. В этом модуле определены все функции, необходимые для распознавания процессора и получения его характеристик. Листинг 1.1. Файл cpuinfo\askcpu.asm Model small CPU_ID MACRO Db 0fh Db 0a2h ENDM Stack 100h Data Public _vendor_id_msg Public _cpu_model Public _cpu_signature Public _features_ecx Public _features_edx Public _features_ebx Public _get_cpu_model _vendor_id_msg db "............", 0dh, 0ah, "$" _cpu_model db 0 _cpu_signature dd 0 _features_ecx dd 0 _features_edx dd 0 _features_ebx dd 0 Code ; ============================================ ; _get_cpu_model ; ============================================ .8086 _get_cpu_model proc Call cpu_8086 Cmp ax, 0 Jz try_80286 Mov _cpu_model, 0 Jmp end_of_detect try_80286: Call cpu_80286 Cmp ax, 0 Jz try_80386 Mov _cpu_model, 2 Jmp end_of_detect try_80386: Call cpu_80386 Cmp ax, 0 Jz try_80486 Mov _cpu_model, 3 Jmp end_of_detect try_80486: Call cpu_80486 Cmp ax, 0 Jz Pent_CPU Mov _cpu_model, 4 Jmp end_of_detect Pent_CPU: Mov _cpu_model, 5 .386 Pusha Mov eax, 00h CPU_ID Mov dword ptr _vendor_id_msg, ebx mov dword ptr _vendor_id_msg[+4], edx mov dword ptr _vendor_id_msg[+8], ecx Cmp eax, 1 Jl end_of_detect Mov eax, 1 CPU_ID Mov _cpu_signature, eax Mov _features_ebx, ebx Mov _features_edx, edx Mov _features_ecx, ecx Popa end_of_detect: .8086 Ret _get_cpu_model endp ; ============================================ ; cpu_8086 ; ============================================ Cpu_8086 proc Pushf Pop ax Mov cx, ax And ax, 0fffh Push ax Popf Pushf Pop ax And ax, 0f000h Cmp ax, 0f000h Je is_8086 Mov ax, 0 Ret is_8086: Mov ax, 1 Ret Cpu_8086 endp ; ============================================ ; cpu_80286 ; ============================================ .286 Cpu_80286 proc Mov ax, 0f000h Push ax Popf Pushf Pop ax And ax, 0f000h Jz is_80286 Mov ax, 0 Ret is_80286: Mov ax, 1 Ret Cpu_80286 endp ; ============================================ ; cpu_80386 ; ============================================ .386 Cpu_80386 proc Pushfd Pop eax Mov ecx, eax Xor eax, 40000h Push eax Popfd Pushfd Pop eax Xor eax, ecx Jz is_80386 Mov ax, 0 Ret is_80386: Push ecx Popfd Mov ax, 1 Ret Cpu_80386 endp ; ============================================ ; cpu_80486 ; ============================================ Cpu_80486 proc Pushfd Pop eax Mov ecx, eax Xor eax, 200000h Push eax Popfd Pushfd Pop eax Xor eax, ecx Je is_80486 Mov ax, 0 Ret is_80486: Mov ax, 1 Ret Cpu_80486 endp End Задание 1. Определите тип центрального процессора. 2. Получить и отобразить на консоли дату изготовления версии BIOS, а также содержимое таблицы конфигурации. 3. Получить информации о конфигурации компьютера при помощи BIOS 5 Контрольные вопросы 1. Определение конфигурации с помощью BIOS 2. Программа HDWCFG Программа BIOSINFO Лабораторная работа №6 Логические команды и команды сдвига микропроцессора Цель работы Организация арифметико-логических устройств (АЛУ), устройств управлений (УУ), системы прерываний.Арифметические операции с использованием сопроцессора Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом... Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право... Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|