Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Определение конфигурации с помощью BIOS





Во время инициализации системыBIOS опрашивает порты, к которым подключены перемычки, и определяет содержимое ячеек памяти CMOS, содержащие информацию о конфигурации компьютера. Результат записывается в область данных BIOS, откуда программа может его извлечь с помощью прерываний BIOS.

Сведения о наличии основных устройств компьютера записывается в область данных BIOS с адресом 0000:0410 размером в двухбайтовое слово - слово конфигурации. С помощью прерывания INT 11h программа может получить в регистре AX слово конфигурации из указанной выше области данных BIOS.

Биты регистра AX Содержимое
  В системе установлен накопитель на магнитном диске (НМД)
  В системе установлен арифметический сопроцессор
2 – 3 (все модели, кроме IBM PS/2) Количество банков оперативной памяти на системной плате. Для компьютера IBM PC размер одного банка равен 16 Кбайт, для IBM PC/XT – 64 Кбайт. Для определения объема оперативной памяти в более современных компьютерах следует использовать другие средства, о которых мы расскажем позже
2 (IBM PS/2) Компьютер IBM PS/2 оборудован мышью
3 (IBM PS/2) Не используется в IBM PS/2
4 – 5 Начальный режим видеоадаптера: 00 – EGA или VGA 01 – цветной, 40x25 10 – цветной, 80x25 11 – монохромный, 80x25
6 – 7 Количество установленных накопителей на гибких магнитных дисках (НГМД)
  Установлен контроллер прямого доступа к памяти DMA
9 – 11 Количество установленных асинхронных последовательных портов
  Установлен игровой порт
  Установлен последовательный порт (только для компьютера PCjr)
14 – 15 Количество установленных параллельных адаптеров

Программа 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 байт идентификатора модели компьютера. Ниже мы привели возможные значения этого байта:

 

Байт Модель компьютера
FF IBM PC
FE IBM XT, Portable PC
FD PCjr
FC IBM PC/AT
FB IBM XT с памятью 640 Кбайт на системной плате
FA IBM PS/2 модель 25 или 30
F9 Convertible PC
F8 IBM PS/2 модели 55SX, 70, 80
9A Compaq XT, Compaq Plus
  Sperry PC
2D Compaq PC

Более подробную информацию можно получить, вызвав функцию C0h прерывания BIOS INT 15h:

Регистры на входе: AH = C0h
Регистры на выходе: ES:BX = адрес таблицы конфигурации, которая находится в ПЗУ BIOS; CF = 0 при успешном вызове прерывания; CF = 1 если в данной версии BIOS функция C0h не реализована

После выполнения прерывания регистры ES:BX будут указывать на таблицу в области ПЗУ BIOS. В этой таблице имеется более точная информация о типе компьютера, номер версии BIOS, сведения об аппаратных особенностях конкретной модели.

Приведем формат указанной таблицы:

 

Смещение Размер, байт Описание
    Размер таблицы в байтах
    Код модели
    Дополнительный код модели
    Модификация версии BIOS
    Байт конфигурации аппаратных средств
    Зарезервировано и равно 0
    Зарезервировано и равно 0

Ниже мы привели описание отдельных бит байта конфигурации аппаратных средств.

Номер бита Описание
  Зарезервирован
  Если этот бит установлен в 1, то используется системная шина Micro Channel, в противном случае – шина ISA
  Применяется расширенная область данных BIOS
  В BIOS реализована функция ожидания внешнего события
  Каждый раз после вызова прерывания от клавиатуры INT 9h вызывается функция 4Fh прерывания INT 15h
  Установлены часы реального времени
  Установлен второй контроллер прерываний 8259
  Канал DMA номер 3 используется 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

Логические команды и команды сдвига микропроцессора

Цель работы

Организация арифметико-логических устройств (АЛУ), устройств управлений (УУ), системы прерываний.Арифметические операции с ис­пользованием сопроцессора







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.