2. Распределение адресного пространства в реальном режиме.
В зависимости от модификации персонального компьютера и его состава распределение адресного пространства может различаться. Однако, размещение основных компонентов MS DOS в реальном режиме строго унифицировано.
Сведения о распределении обычной памяти:
1 кбайт |
Векторы прерываний |
00000-00400h |
Стандартная (базовая) память (640 кбайт) |
256 байт |
Область данных BIOS |
00400-00500h |
|
512 байт |
Область данных DOS |
00500-00700h |
|
|
Io.sys, Msdos.sys |
|
|
|
Загружаемые драйверы |
|
|
|
Command.com(резидентная часть) |
|
|
|
Свободная память для загружаемых прикладных и системных программ |
- A0000h |
|
64 кбайт |
Графический буфер VGA |
A0000-B0000h |
Верхняя память (384 кбайт) |
32 кбайт |
UMB |
B0000-B8000h |
|
32 кбайт |
Тестовый буфер VGA |
B8000-C0000h |
|
64 кбайт |
ROM расширения BIOS |
C0000-D0000h |
|
64 кбайт |
UMB |
D0000-E0000h |
|
128 кбайт |
ROM BIOS |
E0000-100000h |
|
64 кбайт |
HMA |
100000-10FFF0h |
Расширенная память |
Более 1 Мбайт |
XMS |
100000- |
В процессе развития IBM совместимых компьютеров была разработана спецификация для дополнительной памяти EMS(Expended Memory System), т.е. любой дополнительной памяти свыше 640 кбайт. Эта память первоначально могла быть на основной системной плате, так и на адаптерной плате памяти. Поскольку ещё могут использоваться программы, использующие эту разновидность памяти, её можно создать путем эмуляции из расширенной памяти с помощью программы emm386.exe. Ключи данного драйвера могут быть следующие: auto; noems; i=b000-b800 (принудительный доступ в блоки UMB); RAM; HIGHSCAN. Использование в сочетании с этим драйвером директивы DOS= UMB позволяет использовать память UMB для загрузки DOS.
Расширенной памятью XMS (eXtended Memory System) называют оперативную память за пределами 1 Мбайт. Так как первоначально в MS DOS не предполагалось работать с оперативной памятью более 640 кбайт, то для работы с XMS необходимо использовать драйвер верхней памяти himem.sys. Ключи данного драйвера могут быть следующие: /testmem:{on|off}; /shadowram:{on|off}; /verbose; /hmamin=40; /numhandles=128. Использование в сочетании с этим драйвером директивы DOS=HIGH позволяет использовать память HMA для загрузки DOS.
Проверка памяти.
Для получения сведений о распределении оперативной памяти необходимо использовать внешнюю команду DOS mem.exe, справки о командах DOS можно получить с помощью стандартной процедуры в режиме командной строки
2. Работа с эмулятором процессора 8086
Запустить эмулятор процессора 8086, изучить его возможности и выполнить следующие задания:
2.1. проверить работу программ вывода текста Hello world в виде .com и .exe файлов. Показать отличия в исполняемом коде(привести примеры в отчете с комментариями). Провести пошаговое выполнение, указать использование регистров и методов адресации. Обосновать использование прерываний. Пример Hello world в виде .com файла имеется в эмуляторе, файл Hello world в форме .exe файла см. практикум за 2 курс.
2.2. провести программирование внешних виртуальных устройств в эмуляторе(по выбору преподавателя)
Traffic lights
Stepper motor
Printer
Led display
VGA_State
3. Изучение режима виртуального процессора V86.
3.1. с помощью программ утилит операционной системы mem.exe, debug.exe определить распределение памяти в режиме V86 и состояние регистров V86. Определить адрес текущей команды и указать ее назначение. Определить в чем отличие работы прерываний в реалном режиме и в V86
Контрольные вопросы
технические характеристики и особенности архитектуры процессора 8086
структура процессора 8086
причины введения очереди команд, преимущества и недостатки.
основные характеристики реального режима процессоров х86
распределение памяти в реальном режиме
способы адресации и логический адрес х86 режима.
применение сегментных регистров в реальном и защищенном режиме.
Регистры общего назначения процессора 8086
Виды оперативной памяти и распределение адресного пространства в реальном режиме и в режиме V86.
Как определить область в памяти для подпрограмм обслуживания прерывания (номер прерывания по выбору преподавателя)
Как происходит обращение к внешним портам в реальном режиме.
