русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Сегментная организация памяти МП. Сегментные регистры и сегменты.


Дата добавления: 2015-08-14; просмотров: 1024; Нарушение авторских прав


Обычно программа состоит из нескольких частей – кодовой, информационной и стековой. Так как заранее неизвестны длины этих составляющих, то удобно, чтобы при программировании каждая из них имела собственную нумерацию слов, отсчитываемых с нуля. Для этого организуют систему сегментированной памяти. Все пространство памяти представляет собой набор сегментов.

 

Сегменты в памяти могут следовать друг за другом непрерывно, могут перекрываться или находиться на некотором расстоянии друг от друга. Физическая ячейка памяти может принадлежать одному или нескольким сегментам. Каждый сегмент представляет собой отдельную логическую единицу информации, содержащую совокупность данных или программный код и расположенную в адресном пространстве пользователя.

Микропроцессор позволяет независимо адресовать 4 программных сегмента в памяти:

  1. сегмент команд,
  2. сегмент данных,
  3. сегмент стека,
  4. дополнительный сегмент.

Каждой составляющей программы выделяется сегмент памяти. Сегмент – это независимая и отдельно адресуемая единица памяти. В каждом сегменте устанавливается своя собственная нумерация слов. Физический адрес памяти определяется номером сегмента и адресом внутри сегмента.

Каждому сегменту программой назначается начальный адрес, являющийся адресом первого байта сегмента в пространстве памяти. Начальный адрес сегмента хранится в соответствующем сегментном регистре.

Память логически организована как одномерный массив байтов, каждый из которых имеет физический адрес. Весь обмен информацией между микропроцессором и оперативной памятью осуществляется с использованием физических адресов. Как только устройство шинного интерфейса микропроцессора обращается к памяти, формируется физический адрес требуемой ячейки оперативной памяти. Логический адрес ячейки памяти состоит из двух значений:



1. начального адреса сегмента,

2. внутрисегментного смещения, которое определяет расстояние от начала сегмента до адресуемой ячейки памяти.

Изменяя содержимое сегментных регистров, можно передвигать сегменты в границах всей памяти. Внутри программы все адреса памяти относительны к началу сегмента.

Для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов) используются регистры смещений IP, SP, BP, SI, DI.

Схема формирования физического адреса ячейки памяти представлена на рисунке.

Выборка команд из памяти осуществляется из текущего сегмента команд по адресу, сформированному путем суммирования содержимого сегментного регистра CS и смещения, в качестве которого используется содержимое регистра указателя команд IP. После выборки из памяти программ очередного байта команды содержимое IP увеличивается на единицу.

Указательные регистры SP и BP предназначены для доступа к данным в текущем сегменте стека. Стековые команды всегда обращаются к текущему сегменту стека по адресу SS : SP. Если при вычислении адреса используется регистр BP, то ячейки стекового сегмента рассматриваются как оперативная память с произвольной выборкой.

Индексные регистры SI и DI содержат смещения, которые относятся к текущему сегменту данных.

Сегментная организация памяти обеспечивает возможность создания позиционно независимых или динамически перемещаемых программ, что необходимо в мультипрограммной среде для эффективного использования оперативной памяти. Чтобы обеспечить позиционную независимость, все смещения в программе должны задаваться относительно фиксированных значений, содержащихся в сегментных регистрах. Это позволяет произвольно перемещать программу в адресном пространстве памяти, изменяя только содержимое сегментных регистров.



<== предыдущая лекция | следующая лекция ==>
Регистр флагов (признаков) МП | Общие сведения о системе прерываний МП.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.386 сек.