Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler (Уч_пос_Лаб_Ч1).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.43 Mб
Скачать

Содержание некоторых полей области данных bios

Адрес (offset)

Размер, байт

Типичное значение

Описание

00h, 02h

2+2

03F8h, 02F8

Базовые порты COM1 и COM2

08h

2

03BCh

Базовый порт LPT1

10h

2

C463h

Состав установленного оборудования

13h

2

0280h=640Кбайт

Основная память

17h, 18h

1+1

Первый и второй байты флагов клавиатуры

1Ah

2

001Eh – 003Ah

Головной указатель клавиатурного буфера

1Ch

2

001Eh – 003Eh

Хвостовой указатель клавиатурного буфера

49h

1

03h

Текущий видеорежим

4Ah

2

50h=80

Ширина экрана

4Ch

2

1000h=4байта

Размер видеостраницы

4Eh

2

Смещение в видеобуфере текущей видеостраницы

50h

16

Позиции курсора на каждой видеостранице

60h

2

0607h

Форма курсора

6Ch

4

Счётчик прерываний системного таймера, 18,2 Гц

72h

2

0000h

Режим начальной загрузки: 0000h – полный цикл POST, 1234h – укороченный цикл после нажатия Ctrl-Alt-Del

80h

2

001Eh

Адрес начала буфера клавиатуры

F0h -FFh

16

Нули

Область межзадачных связей

Блоки верхней памяти UMA различаются как по принципу работы – ОЗУ или ПЗУ, так и по месту расположения в компьютере. Видеопамять (тип OЗУ) – обычно находится в составе видеоадаптера, программы BIOS (тип ПЗУ) – на материнской плате компьютера.

Всё, что выше первого мегабайта, получило название расширенной или XMS-памяти (см. табл. 1). Как уже отмечалось выше, доступ к расширенной памяти осуществляется в защищённом режиме и она не доступна для DOS.

Однако в составе DOS имеются два драйвера, которые позволяют пользоваться XMS-памятью в ограниченном объёме. Первый драйвер Himem.sys разрешает DOS загрузить себя в первый сегмент расширенный памяти, получившей название высокой памяти – High Memory (HMA). Второй – Emm386.exe- может выполнять две альтернативные функции:

  • отображение расширенной памяти на свободные адреса верхней UMA-памяти (Expanded memory – EMS),

  • загрузку драйверов и резидентных программ DOS (системных и прикладных) из CMA-памяти на свободные адреса верхней памяти UMA.

Указанные функции реализуются посредством модификации конфигурационных файлов Config.sys и Autoexec.bat. В начале файла Config.sys помещаются две строки, осуществляющие загрузку данных файлов (в начале Himem.sys, затем Emm386.exe), затем, в третьей строке, – директиву DOS с параметрами: High и UMB. Параметр High пролонгирует назначение драйвера Himem.sys, UMB – разрешает DOS управлять блоками верхней памяти через посредство драйвера Emm386.exe. Вот, к примеру, как это выглядит для Windows 9x:

........

Device=C:\Windows\Himem.sys

Device=C:\Windows\Emm386.exe Noems

Dos=High,Umb

В конце второй строки добавляется ключевое слово Ram, если требуется реализация от драйвера функции отображения расширенной памяти в umb, или noems – для указанной выше альтернативной функции. В дальнейшем записываются строки, загружающие драйвера (при наличии noems) в верхнюю память с помощью команды Devicehigh. Например:

Devicehigh=C:\Windows\Command\Ansi.sys

При этом загрузка резидентов выполняется в Autoexec.bat командой Loadhigh(Lh). Выполнение подобной работы позволяет освободить CMA-память для загружаемых команд до уровня ~ 600 Кбайт.

Для просмотра памяти можно воспользоваться следующими командами:

Mem/d/p – постраничный просмотр модулей и драйверов всей памяти;

Mem/m:<filename> – вывод подробных сведений об использовании памяти заданным модулем.

При установке на компьютер системы Windows 2000 функция загрузки подсистемы DOS в память HMA, через посредство драйвера Himem.sys, выполняется по умолчанию. Кроме того, драйвер Emm386.exe в этой системе уже не используется, а его функции в файле Config.nt частично выполняет команда Emm. Описание данной команды приведено в виде комментариев в файле Config.nt для Windows 2000.

Рассмотренные выше строчки в Config.nt можно представить в виде:

........

device=%SystemRoot%\system32\himem.sys

Emm=Ram2

Dos=High,Umb

Devicehigh=C:\Windows\Command\Ansi.sys

Вообще система Windows 2000 автоматически оптимизирует использование памяти для подсистемы MS-DOS и её программ. Для резервирования за программой DOS определённых объёмов памяти различных типов щёлкните правой кнопкой на значке исполняемого файла программы и выберите из контекстного меню команду Свойства. В окне свойств откройте вкладку Память (рис. 3).

Рис. 3. Окно свойств с открытой вкладкой Память

  • В рамке Обычная память задаётся необходимый для работы программы объём памяти в Кбайтах (от 0 до 640 Кб.). В раскрывающемся списке Переменные среды задаётся объём памяти (в байтах) для интерпретатора команд Command.com (проявляет себя только при запуске Windows 9x). Установка флажка Защищённый режим препятствует изменению программой установленной структуры и объёма обычной памяти, что защищает систему от зависания в случае ошибок в программе.

  • В рамке Отображаемая (EMS) память указывается максимальный объём физической памяти, отображаемой в диапазоне свободных адресов верхней памяти, который может быть выделен программе.

  • В рамке Дополнительная (XMS)-память можно установить флажок Использовать HMA для загрузки программы в высокую память, однако если в HMA-память загружена DOS (что более необходимо), положение флажка не играет роли.

  • В рамке Память DPMI для защищённого режима MS-DOS задаётся предельный объём памяти DPMI для защищённого режима DOS, который может быть выделен программе (проявляет себя только при запуске Windows 9x).

Для просмотра памяти можно воспользоваться следующими командами:

mem/d выводит сведения о загруженных программах и внутренних драйверах, а также вывод других сведений о программах (при необходимости используйте постраничный вывод с помощью команды more, например, mem/d|more);

mem/c – выводит сведения о программах, загруженных в обычную память и в верхнюю область памяти, а также итоговые сведения об использовании памяти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]