<СЕГМЕНТ> : <СМЕЩЕНИЕ>,
который занимает четыре байта: 2 байта <СЕГМЕНТ> и 2 байта
<СМЕЩЕНИЕ>. Такой способ позволяет адресовать большее пространство
оперативной памяти меньшими чис
лами. Чтобы Вам было проще это
представить, приведём такой пример. В некотором районе построенно 20 домов
по 99 квартир. Необходимо найти способ адресации, чтобы не выходить за
границы двузначных чисел, ибо сквозная нумерация всех квартир требует
возможности представлять максимальное число:
20×99 = 1980,
которое занимает четыре разряда. Выход из такой ситуации состоит в
двойной адресации:
<ДОМ> : <КВАРТИРА>
Тогда любую квартиру Вы сможете найти по номеру дома и номеру
квартиры в этом доме. Например, дом 10, квартира 67:
<10> : <67>,
в то время, как при сквозной нумерации для хранения адреса объекта
понадобилось бы три разряда: 10×67 = 670.
8.27.3. Тип Pointer
Основным механизмом для организации динамических данных в ТП
является выделение в специальной области памяти, называемой «куча», участка
(блока) необходимого размера и сохранения адреса начала этого участка в
специальной переменной в формате <СЕГМЕНТ> : <СМЕЩЕНИЕ>.
Условимся называть далее указателем переменные, которые имеют
обобщённый тип Pointer – указатель. То есть можно объявлять переменные,
значениями которых будут адреса ячеек памяти:
Var
P : Pointer; {Переменная-указатель}
Значение этого типа занимают 4 байти памяти и содержат адрес начала
любого объекта ТП. Адрес сохраняется как два слова, то есть две переменные
типа Word (каждая из них занимает в памяти 2 байта): одно из них задаёт
сегмент, а другое – смещение. Значение указателя не может быть выведенным
на экран или на печать. Его нужно предварительно расшифровувать.
Имейте ввиду, что компилятор ТП всегда должен знать, какой объект
адресуется, чтобы корректно его обрабатывать. Вспомните, что переменная
типа Integer занимает в памяти 2 байта, переменная типа LongInt – 4 байта,
переменная типа Real – 6 байтов, переменная типа Byte занимает в памяти 1
байт и т.д (см. Приложение 7).
Ещё одна из тонкостей работы в ТП состоит в том, что Вы должны
соблюдать все правила «правописания» его конструкций. К примеру, когда Вы
пишете письмо к близкому человеку, то отступаетете все необходимые абзацы,