Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_lek_OAiP_Meleshko.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
378 Кб
Скачать
☆

Организация памяти

Физическая память, к которой микропроцессор имеет доступ по шине адреса, называется оперативной памятью (ОЗУ). Оперативную память физически выполнена в виде микросхем и предназначена для временного хранения программ и данных. Оперативная память организована как последовательность ячеек – байтов. Каждому байту соответствует свой уникальный адрес (его номер), называемый физическим.

Сегментная организация памяти

В архитектуру процессора i8086/i8088 была заложена идея сегментной организации памяти, которая сохранилась с появлением новых моделей процессоров. Изменялись только адресуемые размеры сегментов. Например, в ОС MS-DOS размер сегмента не мог превышать 64 Кб, т.к. система базировалась на 16-разрядных процессорах и смещение (в регистрах IP и SP) не могло превышать 216-1=65535. Диапазон изменения фозического адреса – до 1Мбайта, это определялось тем, что шина адреса i8086 имела 20 разрядов.

Под сегментом понимается блок смежных ячеек памяти, максимальным размером 64 Кбайт и начальным или базовым адресом, находящимся на 16-байтной границе (такая граница называется параграфом).

Для обращения к памяти необходимо определить базу сегмента (адрес его начала) и 16-битное расстояние от базы, называемое смещением (offset) или относительным адресом. Таким образом, 20-разрядный физический адрес состоит из двух 16-разрядных логических адресов: адрес базы (сегмента) и смещения (эффективного адреса).

CS

:

IP

96AF

:

E305

DS

:

00FD

сегмент

смещение

Рисунок 6. Логические адреса

При загрузке выполняемой программы в память операционная система инициализирует, как правило, три сегментных регистра: CS, DS, SS. В них и находятся базовые адреса доступных программе сегментов. Исполнительный адрес любой ячейки вычисляется процессором путём сложения этого адреса, умноженного на 16, со смещением.

ОЗУ

Адрес

…

CS 

Команда

3DA00

Начало сегмента кода

…

Команда

CS+IP

Исполняемая команда

…

Команда

CS+FFFF

Конец сегмента кода (max)

…

DS 

Данное

79F20

Начало сегмента данных

…

Данное

DS+A

Адрес переменной А

…

Данное

DS+FFFF

Конец сегмента данных (max)

…

Данное

SS-FFFF

Конец сегмента стека (max)

…

Данное

SS-SP

Вершина стека

…

SS

Данное

80AB0

Начало сегмента стека

…

FFFFF

Конец ОЗУ

Рисунок 7. Структура сегментной организации памяти процессоров i8086

Например, как процессор узнаёт, по какому адресу расположена нужная для выполнения команда? Для этого есть содержимое регистров CS:IP. Процессор выставляет на шину адреса 16- разрядное значение регистра CS и выполняе сдвиг влево на 4 бита (что равноценно умножению на 16) и складывает полученное значение с содержимым регистра IP. Если <CS>=3DA0h и <IP>=11FAh, то:

3DA00 h

+ 11FA h

3EBFA h – физический исполнительный адрес команды.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]