
- •В.А. Афанасьев
- •Часть 1 Лабораторный практикум
- •Предисловие
- •1. Краткая характеристика операционной среды ms-dos в компьютерах с операционной системой Windows
- •2. Составные части ms-dos и её инициализация
- •3. Взаимодействие Ассемблерной программы с ms-dos и аппаратными средствами Компьютера
- •4. Сегментированная организация памяти в реальном режиме. Виды памяти в среде ms-dos
- •Распределение первого мегабайта памяти компьютера
- •Содержание некоторых полей области данных bios
- •5. Программная модель 32-разрядных процессоров i80x86
- •Назначения сегментных регистров
- •6.2.2. Путь выполнения команды
- •6.2.3. Трансляция программы. Опции командной строки
- •6.2.4. Структура программы для .Exe- и .Com-файлов. Образ программы в памяти
- •Сегменты упрощенной модели памяти Small
- •%Title "Имя exe-файла программы"
- •%Title "Имя com – файла программы"
- •6.2.5. Работа с отладчиком Turbo Debugger (td)
- •6.2.6. Форматы машинных команд и их кодирование
- •Определение эффективного адреса
- •Косвенные виды адресации
- •6.2.6.2. Использование 32-битных регистров
- •6.2.7. Работа над синтаксическими ошибками при ассемблировании программы
- •6.3. Задание к работе. Порядок выполнения
- •6.4. Контрольные вопросы
- •Приложения к лабораторной работе № 1 п.1.1. Машинные коды команд базового процессора i8086
- •Машинные коды команд базового процессора i8086
- •П.1.2. Демонстрационные файлы
- •П.1.3. Форматы исполняемых файлов .Exe и .Com на диске
- •А) Листинг prog_com. Lst
- •Содержимое префикса программы psp
- •А) Листинг prog_exe.Lst
- •Б) Машинный код исполняемого файла prog_exe.Exe на диске объёмом 624 байта
- •Формат заголовка исполняемого .Exe – файла на диске
- •7.2.2. Ввод с клавиатуры символьной информации
- •7.2.2.1. Буфер ввода данных с клавиатуры
- •7.2.2.2. Системные функции dos ввода данных с клавиатуры
- •Сравнительная характеристика функций dos ввода с клавиатуры
- •7.2.3. Функции dos вывода данных на экран
- •7.2.4. Расширенные коды ascii и управление программой с клавиатуры
- •Расширенные коды для функциональных клавиш
- •7.2.5. Строковые команды. Общая характеристика
- •Команды обработки строк
- •7.3. Задания к работе. Подготовка и выполнение
- •7.4. Контрольные вопросы
- •Приложения к лабораторной работе № 2 Приложение п.2.1. Примеры реализаций типового задания
- •Приложение п.2.2. Esc-последовательности
- •Параметры Esc-последовательности
- •Приложение п.2.3. Таблица символов в кодировке ascii
- •8.2.2. Прямое программирование видеобуфера в текстовом режиме
- •8.2.3. Справочные данные по функциям bios
- •8.2.3.1. Прерывание int 10h. Видеофункции bios
- •Текстовые видеорежимы и страницы в стандарте vga, поддерживаемые современными видеоконтроллерами
- •8.2.3.2. Рекомендации по использованию видеосервиса bios
- •8.2.3.3. Прерывание int 16h
- •8.2.3.4. Задержка программных операций
- •Int 15h, функция 86h
- •8.3. Варианты индивидуального задания
- •8.4. Контрольные вопросы
- •Приложения к работе № 3 Примеры реализаций типовых заданий п.3.1. Листинг 3.4. Программа получения скан-кодов клавиш клавиатуры
- •П.3.2. Листинг 3.5. Демонстрационная программа использования функций bios для работы с экраном и клавиатурой
- •9.2.1. Представление знаковых и беззнаковых чисел в 16-разрядном компьютере
- •Представление чисел в 16- разрядном компьютере
- •9.2.2. Преобразование ascii-кодов чисел с произвольным основанием в двоичное число
- •9.2.3. Преобразование двоичного числа в ascii-строку числа по произвольному основанию
- •9.2.4. Задание к работе. Порядок выполнения
- •Варианты заданий 1-7
- •Варианты заданий 8-14
- •9.2.5. Вопросы построения многомодульных программ
- •9.2.6. Ассемблирование и компоновка отдельных модулей в программу. Создание библиотеки объектных модулей
- •9.3. Контрольные вопросы
- •Список использованной и рекомендуемой Литературы
- •Оглавление
Распределение первого мегабайта памяти компьютера
Номер сегмента |
Сегментный адрес |
Описание |
Вид памяти |
220-1 |
|
Расширенная память (спецификация eXtended Memory Specification – XMS) |
XMS |
|
|||
11 |
110000h |
|
|
10 |
100000h |
Высокая память (High Memory Area – HMA) |
|
F |
F000h |
ПЗУ bios |
Upper Memory Area (UMA) 384 Кбайт |
E |
|
Свободные адреса |
|
D |
|
Свободные адреса |
|
C |
C000h |
ПЗУ расширений bios |
|
В |
B800h |
Текстовая видеопамять |
|
B000h |
Графический видеобуфер |
||
А |
A000h |
||
9 |
9000h |
Свободная память для загружаемых прикладных и системных (резидентных) программ (~570 Кбайт) |
Conventional Memory Area (CMA) 640 Кбайт |
8
1 |
0070h |
||
Резидентная часть COMMAND.COM |
|||
0 |
Загружаемые драйверы DOS |
||
Ядро операционной системы DOS – файлы IO.SYS и MSDOS.SYS |
|||
0050h |
Область данных DOS (512 байт) |
||
0040h |
Область данных BIOS (256 байт) |
||
0000h |
Таблица векторов прерываний (1 Кбайт) |
Первые 640 Кбайт адресного пространства называются основной или стандартной CMA-памятью и по принципу работы являются памятью с произвольным доступом, допускающей как считывание, так и запись данных (ОЗУ или в англоязычной транскрипции RAM – Random Access Memory). Это та область, которую могли адресовать первые версии DOS. Оставшаяся часть памяти объёмом 384 Кбайт (область верхней памяти – UMA) использовалась видеоадаптером и ПЗУ BIOS. Начальный килобайт памяти занят векторами прерываний (256 векторов по 4 байта). Далее, над таблицей векторов, располагается область данных BIOS, которая занимает объём в 256 байт. В этой области хранятся разнообразные данные, используемые BIOS в процессе управления периферийным оборудованием. Этими данными могут пользоваться и разработчики прикладных программ на ассемблере (см. табл. 2). Начиная с сегментного адреса 0050h, располагается область данных DOS. К некоторым данным этой области (данные не являются документированными) можно обращаться только через посредство программных прерываний. Выше резидентной части командного процессора обычно загружаются необходимые резидентные программы (русификаторы, антивирусные программы). Оставшаяся часть CMA-памяти для загрузки прикладных DOS-программ, как правило, не превышает ~ 500 Кбайт.
Таблица 2