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

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

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

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

В архитектуру процессора 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 – физический исполнительный адрес команды.

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