Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Организация хранения байтов в памяти



При просмотре памяти имейте в виду, что двухбайтовые слова хранятся в виде {младший байт}{старший байт} – т.е. порядке обратном естественному представлению многоразрядного числа.

То же самое относится к порядку расположения слов в двойном слове – сначала младшее слово, потом старшее. Всегда действует общий принцип – младшее лежит в ячейке памяти с младшим адресом. Таким образом, полный 4-х байтный указатель (например, на таблицу таблиц) 1234:5678H будет в дампе памяти выглядеть как:

78 56 34 12

\ /   \ /

|     |___ старшее слово с переставленными байтами

|

|_________ младшее слово с переставленными байтами

Информация о структурах памяти

Это список указателей, каждый из которых представляет собой двойное слово (4 байта). Старшее слово – это сегментный адрес, младшее – смещение в сегменте. Например, для указателя, у которого сегментный адрес=1234H, а смещение 5678H, абсолютный физический адрес ячейки памяти образуется, как сумма сегментного адреса * 16 + смещение (т.е. сегментный адрес сдвинут влево на 1 шестнадцатиричный разряд):

 1234 H  0110 H 0112 H

+ 5678H + 0026H + 0006H

-------- --------  ---------

=179B8H =01126H =01126H

Таким образом 0110:0026 – это тоже, что и 0112:0006 !

Структура таблицы таблиц

Данная структура является НЕДОКУМЕНТИРОВАННОЙ и используется для изучения низкоуровневой информации о структурах памяти.

 

Смещение Длина Содержимое
-2 2 сегментный адрес 1 MCB
0 4 указатель на 1 DPB (Disk Parameters Block )
+ 4 4 указатель на список таблиц открытых файлов
+ 8 4 указатель на первый драйвер DOS (CLOCK$)

Структура блока управления памятью (MCB)

MCB – Это НЕДОКУМЕНТИРОВАННЫЙ управляющий блок, который используется при распределении, модификации и освобождении блоков системной памяти.

Смещение Длина Содержимое
+0 1 'M' (4dH) – за этим блоком есть еще блоки 'Z' (5aH) – данный блок является последним
+1 2 Владелец, параграф владельца (для FreeMem); 0 = владеет собой
+3 2 Размер, число параграфов в этом блоке распределения. Параграф равен 16 байтам
+5 0Bh Зарезервировано
+10h ? Блок памяти начинается здесь и имеет длину (Размер*10H) байт

 

Замечания:

- блоки памяти всегда выровнены на границу параграфа («сегмент блока»);

- блоки M-типа: следующий блок находится по (сегмент блока + Размер):0000;

- блоки Z-типа: (сегмент блока + Размер):0000 = конец памяти (a000H=640K).

В любом MCB указан его владелец – сегментный адрес PSP (префикс программного сегмента) программы владельца данного блока памяти. А в PSP есть ссылка на окружение данной программы, в котором можно найти имя программы – путь ее запуска.

Следует помнить, что сама программа (и PSP в том числе) и ее окружение сами располагаются в блоках памяти. Поэтому, в MCB блока памяти самой программы в качестве хозяина указан собственный адрес самого себя.

Когда программа в реальном режиме начинает выполнение, DS:0000 и ES:0000 указывают на начало PSP этой программы. Информация PSP позволяет выделить имена файлов и опции из строки команд, узнать объем доступной памяти, определить окружение и т.д.

Использование окружения. Окружение не превышает 32 Kбайт и начинается на границе параграфа. Смещение 2Сh в PSP текущей программы содержит номер параграфа окружения.

Вы можете найти нужное 'имя' серией сравнений строк ASCIIZ (Строка ASCIIZ, используемая во многих функциях DOS и в языке C, представляет собой последовательность символов ASCII, заканчивающуюся байтом 00H), пока не дойдете до пустой строки (нулевой длины), что указывает конец окружения. Обычно 'имя' в каждой строке окружения задано прописными буквами, но это необязательно.

Более подробную информацию о структурах памяти можно получить из справочника TECH Help!

Задание на выполнение

Часть 1.

 1. Подготовиться к работе, используя материалы лекций, данное пособие, справочник TEACH-HELP.

 2. Познакомиться с работой одной из программ, позволяющих просмотреть содержимое ОЗУ в виде шестнадцатиричного дампа – например, PEEK.COM (во время работы доступен HELP – F1, карта памяти – F8 и информация о блоке памяти – F6).

 3. Найти в памяти таблицу таблиц (для получения ее адреса – запусти lol.com), познакомиться с ее содержимым и посмотреть указатель на 1 MCB (упр. блок памяти).

 4. Проследить в памяти цепочку блоков и сравнить с информацией из карты памяти (F8).

 5. Написать отчет о найденной цепочке блоков памяти с их адресами и размерами.

Часть 2. Дополнительное задание

1. Определите принадлежность рассмотренных вами блоков MCB.

Ответьте на вопрос:

1. В чем особенность последнего блока MCB?

 

 

Лабораторная работа № 3
«Диагностика IP-протокола»


Цель работы

Целью работы является проверка работоспособности сетевого подключения в ОС Windows, через диагностику IP-протокола и формирование следующих компетенций:

- Готовность обосновать принимаемые проектные решения, осуществлять постановку и выполнение экспериментов по проверки их корректности и эффективности (ПК-4).

- Знакомство с архитектурой ЭВМ и систем (ПК-9).

- Навыки использования операционных систем, сетевых технологий, средств разработки программного интерфейса, применения языков и методов формальных спецификаций, систем управления базами данных (ПК-15).

Контроль над формированием компетенций осуществляется при защите лабораторной работы.


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 283; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь