Базовый адрес - сегмент - Большая Энциклопедия Нефти и Газа, статья, страница 3
Русский человек способен тосковать по Родине, даже не покидая ее. Законы Мерфи (еще...)

Базовый адрес - сегмент

Cтраница 3


Все обращения к сегменту К определяются проверкой содержимого ячейки с адресом C ( DBR) K, в которой содержится базовый адрес сегмента. Если содержимое регистра DBR изменяется, выражение С ( DBR) К получает - новое значение и соответственно базовый адрес сегмента К будет извлекаться из другой ячейки.  [31]

В завершение рассмотрения различных способов адресации отметим, что исполнительные адреса ЕА, получаемые описанными выше способами, являются в действительности 16-разрядными смещениями в сегменте. Как было показано на рис. 1.3, 20-разрядный физический адрес получается путем сложения смещения в сегменте с предварительно сдвинутым на четыре разряда влево базовым адресом сегмента. Поскольку имеется четыре сегментных регистра CS, DS, SS и ES, для выполнения каждого преобразования логического адреса в физический должен быть выбран определенный регистр, содержащий базовый адрес соответствующего сегмента. Это осуществляют аппаратные средства микропроцессора, которые автоматически выбирают сегментный регистр согласно цели каждого обращения к памяти, как показано в табл. 1.2. В таблице указан также источник логического адреса, определяющий смещение в сегменте.  [32]

Сегментные регистры соответствуют четырем сегментам памяти: данных - DS, стека - SS, кода - CS и промежуточных данных - ES. В каждом из этих регистров хранятся 16 старших разрядов кода адреса соответствующего сегмента памяти; 20-разрядный физический адрес, позволяющий работать с памятью емкостью до 1 Мбайт, образуется в СМА путем сдвига базового адреса сегмента на четыре разряда влево и сложения его с 16-разрядным адресом смещения. Адрес смещения находится в одном из регистров указателей или индексов УО и позволяет адресовать байты или слова в пределах 64 Кбайт выбранного сегмента. Если полученное в СМА значение превышает значение самого старшего адреса сегмента, то физический адрес вновь отсчитывается от начала сегмента до значения превышения. При вычислении физического адреса операнда в качестве базового адреса используется содержимое регистров сегмента данных и сегмента промежуточных данных, а при вычислении физического адреса команды - содержимое регистра сегмента кода. Регистр адреса команд ( указатель команд) IP соответствует счетчику команд микропроцессора К580ВМ80А и указывает следующую команду, которая будет выполняться после текущей команды. Устройство сопряжения записывает в него из У О смещение следующей команды от начала текущего сегмента кода. Если содержимое регистра адреса команд засылается в стек, то происходит автоматическая настройка его на адрес следующей команды.  [33]

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

Область памяти с дескрипторами называется таблицей дескрипторов. Каждый дескриптор сегмента содержит базовый адрес сегмента, размер сегмента ( от 1 до 64 Кбайт) и его атрибуты. Базовый адрес сегмента имеет разрядность 24 бит, что обеспечивает адресацию 16 Мбайт физической памяти.  [35]

Команды LDS и LES используются, в основном, при обращении к данным, находящимся вне текущих сегментов DS или ES, так, что возникает необходимость изменить базовый адрес сегмента. Пара 16-разрядных адресов - база сегмента и смещение в сегменте, называемая указателем, предварительно загружается в память. Значение смещения содержится в двух первых байтах указателя, а базовый адрес сегмента - в третьем и четвертом байтах. По команде LDS ( или LES) происходит обращение к указателю и осуществляется загрузка регистра DS ( или ES) базовым адресом, а смещение пересылается в регистр, указанный полем reg постбайта команды.  [36]

В завершение рассмотрения различных способов адресации отметим, что исполнительные адреса ЕА, получаемые описанными выше способами, являются в действительности 16-разрядными смещениями в сегменте. Как было показано на рис. 1.3, 20-разрядный физический адрес получается путем сложения смещения в сегменте с предварительно сдвинутым на четыре разряда влево базовым адресом сегмента. Поскольку имеется четыре сегментных регистра CS, DS, SS и ES, для выполнения каждого преобразования логического адреса в физический должен быть выбран определенный регистр, содержащий базовый адрес соответствующего сегмента. Это осуществляют аппаратные средства микропроцессора, которые автоматически выбирают сегментный регистр согласно цели каждого обращения к памяти, как показано в табл. 1.2. В таблице указан также источник логического адреса, определяющий смещение в сегменте.  [37]

Мандат, в теперешнем нашем понимании, содержит косвенную ссылку через таблицу отображения на начало сегмента, что отличается от непосредственной ссылки на начало сегмента, являющейся частью дескриптора. Каждый мандат, который указывает на сегмент S, осуществляет это обращение путем ссылки на один и тот же элемент М таблицы отображения, который в свою очередь непосредственно указывает на начало сегмента S. Поскольку все мандаты указывают на начало сегмента через таблицу отображения, перемещение сегмента S с базового адреса А на базовый адрес В достигается просто изменением элемента М таблицы отображения, чтобы показать, что базовый адрес сегмента, на который он указывает, теперь адрес В, а не А. За этот единственный шаг автоматически перемещается сегмент S, на который ссылаются все мандаты, указывающие на элемент М таблицы отображения.  [38]

Затем сопроцессор считает адрес блока конфигурации системы, содержащийся в байтах с адресами FFFF8H - FFFFBH. Значения базового адреса сегмента блока конфигурации и смещения преобразуются в 20-разрядный физический адрес, который записывается во внутренний регистр. Этот байт задает режим запроса / предоставления ( разряд R) и физическую ширину шины ввода-вывода ( разряд I): при 1 0 -шина ввода-вывода 8-разрядная, при 1 1 - шина 16-разрядная. Далее, после считывания байта SOC, сопроцессор читает значения базового адреса сегмента блока управления каналами и смещения, которые преобразуются в 20-разрядный физический адрес и помещаются в другой внутренний регистр. Этот регистр недоступен для программ каналов, так что блок управления канала не может перемещаться во время работы без повторной инициализации СП.  [39]

В процессе работы микропроцессор производит обращение в память за командами и операндами. Микропроцессор КР1810ВМ86 обеспечивает адресацию до 1 Мбайт памяти. Формирование адреса команд и операндов осуществляется с помощью сумматора адреса, регистров адреса команды и операнда, сегментных регистров. Сумматор адреса производит вычисление 20-разрядного физического адреса команд и операндов путем сдвига базового адреса сегмента, хранящегося в соответствующем сегментном регистре, и сложения его с величиной смещения, находящейся в регистре адреса. При вычислении адреса команды используются содержимое регистра сегмента кода и регистра адреса команды, при вычислении адреса операнда - содержимое регистра сегмента данных ( или дополнительного сегмента) и регистра адреса операнда.  [40]

Указатели и индексные регистры могут участвовать в большинстве арифметических и логических операций. Регистры SP, SI и DI также неявно используются в некоторых командах: операции со стеком, операции со строками. В процессе работы микропроцессор производит обращение в память за командами и операндами. Микропроцессор КР1810ВМ86 обеспечивает адресацию до 1 Мбайт памяти. Формирование адреса команд и операндов осуществляется с помощью сумматора адреса, регистров адреса команды и операнда, сегментных регистров. Сумматор адреса производит вычисление 20-разрядного физического адреса команд и операндов путем сдвига базового адреса сегмента, хранящегося в соответствующем сегментном регистре, и сложения его с величиной смещения, находящейся в регистре адреса. При вычислении адреса команды используются содержимое регистра сегмента кода и регистра адреса команды, при вычислении адреса операнда - содержимое регистра сегмента данных ( или дополнительного сегмента) и регистра адреса операнда.  [41]



Страницы:      1    2    3