MCB это управляющий блок, который DOS использует при распределении, модификации и освобождении блоков системной памяти.
Формат блока:
Смещ. Длина Содержимое
▀▀▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
┌───┐ ┌──► 'M'(4dH) - за этим блоком есть еще блоки
+0 1 │Тип├──┴──► 'Z'(5aH) - данный блок является последним
├───┴───┐
+1 2 │Владелец параграф владельца (для FreeMem); 0 = владеет собой
├───┴───┤
+3 2 │Размер │ число параграфов в этом блоке распределения
├───┴───┴───────┐
+5 3 │зарезервировано│
└───┴───┴───-───┘
+8 8 ASCIIZ имя хозяина
+10H ? Блок памяти начинается здесь и имеет длину (Размер*10H) байт.
Замечания:
блоки памяти всегда выровнены на границу параграфа ("сегмент_блока");
блоки M-типа: следующий блок находится по (сегмент_блока+Размер):0000;
блоки Z-типа: (сегмент_блока+Размер):0000 = конец памяти.
Сегмент первого блока в цепочке MCB-блоков хранится по смещению -2 в таблице таблиц (векторной таблице связи) MS-DOS. В векторной таблице связи есть полезная информация, открывающая доступ практически ко всем внутренним структурам данных операционной системы.
Таблица 1 Формат векторной таблицы связи
Смещение, байт Размер, байт Имя поля Описание
-2 2 mcb_seg Сегмент первого блока памяти MCB
0 4 dev_cb Указатель на первый блок управления устройствами MS-DOS (MS-DOS Device Control Block)
4 4 file_tab Указатель на таблицу файлов MS-DOS
8 4 clock_dr Указатель на драйвер CLOCK$ , установленный в файле config.sys или резидентный
12 4 con_dr Указатель на драйвер CON , установленный в файле config.sys или резидентный
16 2 max_btbl Максимальный размер блока (в байтах) для устройства, выполняющего передачу данных отдельными блоками
18 4 disk_buf Указатель на структуру, описывающую дисковые буферы
22 4 drv_info Указатель на массив информации об устройствах
26 4 fcb_tabl Указатель на таблицу FCB
30 2 fcb_size Размер таблицы FCB
32 1 num_bdev Число устройств, выполняющих передачу данных отдельными блоками
33 1 lastdriv Значение LASTDRIVE в файле config.sys (по умолчанию равно 5)
34 ? null_dr Начало драйвера NUL. Этот драйвер всегда первый в списке драйверов MS-DOS
Предварительно загрузив резидентную программу PEEK.EXE для просмотра содержимого памяти, определим с помощью утилиты LOL.COM адрес начала таблицы таблиц:
List of list location: 00A7:0026H
По смещению -2 находится адрес сегмента, по которому расположен первый MCB в цепочке блоков основной памяти. В данном случае этот адрес равен 0213:0000
Контрольная работа №1
Изучить структуру системных таблиц реального режима Windows и организацию цепочек блоков памяти
Познакомиться с работой одной из программ, позволяющих просмотреть содержимое ОЗУ в виде шестнадцатеричного дампа - PEEK.COM.
Найти в памяти таблицу таблиц (для получения ее адреса запустить lol.com), познакомиться с ее содержимым и посмотреть указатель на 1 MCB.
Проследить в памяти цепочку блоков, определяя их принадлежность и сравнивая с информацией из карты памяти.
Написать отчет с описанием процесса нахождения блоков MCB. В отчете указать цепочку блоков памяти с их адресами и размерами.
Список использованной литературы
1. Гук М. Аппаратные средства IBM PC. Энциклопедия. СПб.: Издательство "Питер", 2000. - 816 c.
2. Дейтин Г. Введение в операционные системы. Перевод с английского. В 2-х томах, М., Мир, 1987 г.
3. Роберт Журден. Справочник программиста на персональном компьютере фирмы IBM.
4. Операционная система MS-DOS. Руководство разработчика
5. Операционная система MS-DOS (версия 6.0). Справочное руководство.
6. Питер Абель. Ассемблер и программирование для IBM PC
7. Справочная система Tech Help.
8. Фигурнов В.Э. IBM PC для пользователей. М.:ИНФРА,1997г.
телеграмме мы получили информацию о месяце и дне прибытия, а также о номере вагона.Количество возможных месяцев 12; количество возможных дней 31; количество вагонов 16.Воспользуемся формулой Хартл
региональному принципу. В каждой части страны заинтересованные учреждения должны были соединиться со своими ближайшими соседями. Получившиеся цепочки подсоединялись к суперкомпьютеру в одной из своих
о (2), где вместо х подставляется номер месяца, а вместо коэффициентов их начальные значения (в таблице 4 они равны нулю).Далее используем сервис «Поиск решения» и получаем результаты решения (табл.
аYpk(xi) - решение ОДУ, методом Рунге-Кутты на ПКЕ2 - вычисление значения погрешности метода Рунге-КуттыDECLARE FUNCTION r! (x AS SINGLE, y AS SINGLE, h AS SINGLE, m AS SINGLE)DECLARE FUNCTION f! (x A
данных, графиков, таблиц и т.п. В широко смысле информация это общенаучное понятие, включающее в себя обмен сведениями между людьми, обмен сигналами между живой и неживой природой, людьми и устройст