Чтобы более полно представить все процессы, протекающие внутри любой программы на Паскале, необходимо знать расположение ее внутренних областей в памяти. Для каждой отдельной программы при ее запуске (загрузке в память) MS-DOS организует в памяти что-то вроде анкеты (длинной в 256 байт). Это файл, называемый префиксом программного сегмента (Program Segment Prefix (PSP)).
Система адресации MS-DOS.
| | | |
| | | 16 блоков по 64 кб каждый
| |
От F0000 до FFFFF
|
От E0000 до ……..
|
От D0000 до ……..
|
От C0000 до ……..
|
В
|
А
|
Рабочее ОЗУ (10 блоков 640 кб)
Обычно под OS
| | 90000
|
…………………..
|
|
00000
|
Блок или сегмент обозначается 16-ричной цифрой, обозначающей старшую цифру адреса. 0-блок – это адреса: от 00000 до 0FFFF. Абсолютный адрес – это адрес без учета сегментов, он не может быть > FFFFF. Физический адрес = Абсолютный адрес + Смещение. Абсолютный адрес - адрес самого сегмента (16 бит = 2 б). Смещение – адрес внутри сегмента (4 бита). Это содержимое сегментного регистра.
Таким образом, адрес любой ячейки памяти определяется парой чисел:
СЕГМЕНТ:СМЕЩЕНИЕ.
Знак $ - предшествует 16-ой записи числа.