Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Способы адресации памяти в эвм

Способы адресации памяти в эвм

Исполнительный адрес — это номер ячейки памяти, к которой производится фактическое обращение.

В современных ЭВМ адресный код, как правило, не совпадает с исполнительным адресом.

Выбор способов адресации, формирования исполнительного адреса и преобразования адресов является одним из важнейших вопросов разработки ЭВМ. Рассмотрим способы адресации, используемые в современных ЭВМ :

1) Подразумеваемый операнд.

В команде может не содержаться явных указаний об операнде; в этом случае операнд подразумевается и фактически задается кодом операции команды.

2) Подразумеваемый адрес.

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

3) Непосредственная адресация.

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

4) Прямая адресация.

В адресной части команды может быть непосредственно указан испол­нительный адрес.

5) Относительная (базовая) адресация.

При этом способе адресации исполнительный адрес определяется как сумма адресного кода команды и базового адреса, как правило хранящегося в специальном регистре — регистре базы .

Относительная адресация позволяет при меньшей длине адресно­го кода команды обеспечить доступ к любой ячейке памяти. Для этого число разрядов в базовом регистре выбирают таким, чтобы можно было адресовать любую ячейку оперативной памяти, а адресный код команды используют для представления лишь сравнительно корот­кого «смещения». Смещение определяет положение операнда относи­тельно начала массива, задаваемого базовым адресом.

Лучший спонсор для вебмастеров ! Вы ещё не с нами ?!

6) Укороченная адресация.

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

Регистровая адресация является частным случаем укороченной, когда в качестве фиксированных ячеек с короткими адресами исполь­зуются регистры (ячейки сверхоперативной или местной памяти) про­цессора. Например, если таких регистров 16, то для адреса доста­точно четырех двоичных разрядов. Регистровая адресация наряду с сокращением длины адресов операндов позволяет увеличить скорость выполнения операций, так как уменьшается число обрашений к оперативной памяти.

7) Косвенная адресация.

Адресный код команды в этом случае указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Косвенная адресация широко используется в малых и микроЭВМ, имеющих короткое ма­шинное слово, для преодоления ограничений короткого формата команды (совместно используются регистровая и косвенная адресация).

8) Адресация слов переменной длины.

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

памяти начала слова и его длины.

9) Стековая адресация.

Стековая память, реализующая безадресное задание операндов, особенно широко используется в микропроцессорах и миниЭВМ.

Стек представляет собой группу последовательно пронумерован­ных регистров или ячеек памяти, снабженных указателем стека, в котором автоматически при записи и считывании устанавливается номер (адрес) последней занятой ячейки стека (вершины стека). При операции записи заносимое в стек слово помещается в следующую по порядку свободную ячейку стека, а при считывании из стека извле­кается последнее поступившее в него слово.

10) Автоинкрементная и автодекрементная адресации.

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

При автоинкрементной адресации сначала содержимое регистра используется как адрес операнда, а затем получает приращение, равное числу байт в элементе массива. При автодекрементной адресации сначала содержимое указанного в команде регистра уменьшает­ся на число байт в элементе массива, а затем используется как адрес операнда.

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

Для реализуемых на ЭВМ методов решения математических задач и обработки данных характерна цикличность вычислительных про­цессов, когда одни и те же процедуры выполняются над различными операндами, упорядоченно расположенными в памяти. Поскольку операнды, обрабатываемые при повторениях цикла, имеют разные адреса, без использования индексации требовалось бы для каждого повторе­ния составлять свою последовательность команд, отличающихся адресными частями.

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

Управление вычислительным циклом должно обеспечивать повто­рение цикла нужное число раз, а затем выход из него.

Автоматическая модификация команд и управление вычислитель­ными циклами в современных ЭВМ обеспечиваются механизмом индексации. Это понятие включает в себя специальный способ кодирования команд, командные и аппаратурные средства задания и выполнения модификации команд и управления вычислительными циклами. Упомяну­тые средства часто называют индексной арифметикой.

Для выполнения индексации в машину вводятся так называемые индексные регистры. Исполнительный адрес при индексации формиру­ется путем сложения адресного кода команды (смещения) с содержи­мым индексного регистра (индексом), а при наличии базирования — и с базовым адресом.

Для управления индексацией используются команды, задающие операции над содержимым индексных регистров — команды индексной арифметики. Можно отметить основные виды индексных операций:

— засылка в соответствующий индексный регистр начального значения индекса;

— проверка окончания циклических вычислений.

Способы адресации

Система адресации обеспечивает в МП устройствах доступ к операндам, хранящимся в устройствах памяти, внутренних программно- доступных регистрах и внешних устройствах через порты ввода/вывода. Длина формата команды (общее количество бит в коде команды) определяет скорость выполнения команды и зависит от способа адресации операндов. Способы адресации играют большую роль в организации управления ходом выполнения программы, во многом определяют скорость обработки информации. Существуют следующие основные способы адресации:

Прямая адресация – исполнительный адрес размещается в адресном поле команды. В этом способе непосредственно используется счетчик команд и аккумулятор МП. При прямой адресации содержимое счетчика команд передается на ША и из адресуемой ячейки выбирается очередная команда, поступающая в устройство управления МП. С помощью прямой адресации в АЛУ может вызываться и операнд. Для этого на ША передается адрес ячейки памяти, содержащийся в команде. При необходимости изменения последовательного порядка выполнения программы адресуется ячейка памяти, содержащая адрес условного или безусловного перехода. Команда, содержащая прямой адрес, занимает 2-3 ячейки памяти, что соответственно требует и 2-3 обращений к памяти. Еще одно обращение может потребоваться для непосредственного вызова операнда.

С использованием прямой адресации могут быть загружены только аккумулятор и регистры выделенные для хранения косвенного адреса (в МП типа К580, i — 8080 и 8085 это регистровая пара Н). В современных микроконтроллерах для косвенной адресации обычно используется несколько регистровых пар.

Пример: LDA 0A00— эта команда загружает аккумулятор (регистр А) содержимым ячейки памяти 0А00. Формат этой команды:

Преимущества этого способа адресации – простота и наглядность, не требуется вычисление исполнительного адреса.

Недостаток – низкая скорость обработки информации, кроме того, во многих микропроцессорных системах для поля адреса в формате команды выделяется небольшое число битов, что ограничивает доступный для данного способа объем адресного пространства памяти.

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

Пример: MVI C D3— эта команда загружает регистр С значением D3 (число представлено в шестнадцатеричном коде, т.е. является 8- разрядным двоичным числом).

Косвенная адресация– адресное поле команды указывает не адрес операнда, а лишь адрес ячейки, в которой хранится косвенный адрес, по которому можно получить операнд. В МП косвенная адресация обычно является неявной регистровой. В этом случае команда предписывает выполнить операцию над операндом, адрес которого содержится в регистрах общего назначения (обычно для этого выделяются определенные регистры блока РОН). Так, команда MOV REG,M загружает любой регистр из ячейки памяти, адрес которой содержится в регистровой паре H,L. Команда LDAX загружает аккумулятор с использованием адреса, содержащегося в регистровой паре B или D (используя регистры B или D можно осуществить косвенную загрузку только аккумулятора).

Читать еще:  Клонирование мак адреса

Пример: MOV D,M— эта команда загружает регистр D из ячейки памяти, адрес которой содержится в регистрах H,L. Отметим, что логически для процессора ячейка памяти с адресом, содержащимся в регистрах H,L эквивалентна регистру с индексом М (ячейку памяти с этим адресом называют регистром М. Естественно, адрес этой ячейки памяти меняется с изменением содержимого регистров H,L, а сам «регистр М» физически находится вне процессора).

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

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

ИА = [базовый адрес] + (содержимое индексных регистров)

Для перебора операндов с индексами осуществляется автоиндексация, т.е. добавление к содержимому регистров плюс или минус единицы. Разновидностью автоиндексации является стековая адресация. В этом случае автоиндексный регистр является указателем стека, а область памяти им адресуемая, – стеком. Принцип стековой адресации заключается в следующем: после каждой засылки в стек, содержимое указателя стека увеличивается, а после каждого изъятия из стека — уменьшается на единицу.

Относительная адресация– исполнительный адрес получается сложением адресного поля команды с содержимым базового регистра процессора. Это сложение производится в специальном сумматоре. Относительная адресация применяется в командах перехода.

Страничная адресация– память делится на ряд страниц одинаковой длины. Адресация страниц осуществляется по содержимому программного счетчика или регистра страниц. Адресация памяти внутри страниц производится адресом, который содержится в команде.

Обращение к подпрограммам.Ряд процедурв ЭВМ часто используется различными программами или одной и той же программой многократно. Такие процедуры могут быть стандартизированы и оформлены в виде подпрограмм.

В этом случае вся программа может быть представлена в виде объединения основной программы и подпрограмм. Обращение к подпрограмме происходит из основной программы.

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

Наиболее эффективной адресацией при обращении к подпрограммам является стековая адресация. Адрес возврата записывается в вершину стека, а после выполнения подпрограммы выталкивается из стека и размещается в счетчике команд. Часто в стек вводится содержимое не только счетчика команд, но и всех регистров МП. При использовании стека характерной особенностью выхода из подпрограммы является использование безадресной команды ВОЗВРАТ. По этой команде процессор извлекает из памяти адрес, откуда произошел вызов подпрограммы, и переходит к команде, непосредственно следующей за этим адресом. Затем программа выполняется в обычном режиме.

Применение подпрограмм позволяет придать программе свойство структурированности. Функционально законченную процедуру удобно оформлять в виде подпрограммы даже если в основной программе она используется только один раз. Например, подпрограмма вывода кода управления семисегментным индикатором, подпрограмма генерации звукового сигнала и т.д. Из подпрограмм- библиотек удобно конструировать разнообразные программы.

Организация и модели памяти, адресация

Память – способность объекта обеспечивать хранение данных.
Все объекты, над которыми выполняются команды, как и сами команды, хранятся в памяти компьютера.

Память состоит из ячеек, в каждой из которых содержится 1 бит информации, принимающий одно из двух значений: 0 или 1. Биты обрабатывают группами фиксированного размера. Для этого группы бит могут записываться и считываться за одну базовую операцию. Группа из 8 бит называется .

Байты последовательно располагаются в памяти компьютера.

  • 1 килобайт (Кбайт) = 2 10 = 1 024 байт
  • 1 мегабайт (Мбайт) = 2 10 Кбайт = 2 20 байт = 1 048 576 байт
  • 1 гигабайт (Гбайт) = 2 10 Мбайт = 2 30 байт = 1 073 741 824 байт

Для доступа к памяти с целью записи или чтения отдельных элементов информации используются идентификаторы , определяющие их расположение в памяти. Каждому идентификатору в соответствие ставится адрес . В качестве адресов используются числа из диапазона от 0 до 2 k -1 со значением k, достаточным для адресации всей памяти компьютера.Все 2 k адресов составляют адресное пространство компьютера .

Способы адресации байтов

Существует прямой и обратный способы адресации байтов.
При обратном способе адресации байты адресуются слева направо, так что самый старший (левый) байт слова имеет наименьший адрес.

Прямым способом называется противоположная система адресации. Компиляторы высокоуровневых языков поддерживают прямой способ адресации.

Объект занимает целое слово. Поэтому для того, чтобы обратиться к нему в памяти, нужно указать адрес, по которому этот объект хранится.

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

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

  • сегментированную модель
  • страничную модель
  • плоскую модель

В сегментированной модели память для программы делится на непрерывные области памяти, называемые сегментами . Программа может обращаться только к данным, которые находятся в этих сегментах.
Сегмент представляет собой независимый, поддерживаемый на аппаратном уровне блок памяти.

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

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

  • Сегмент кодов ( .CODE ) – содержит машинные команды для выполнения. Обычно первая выполняемая команда находится в начале этого сегмента, и операционная система передает управление по адресу данного сегмента для выполнения программы. Регистр сегмента кодов ( CS ) адресует данный сегмент.
  • Сегмент данных ( .DATA ) – содержит определенные данные, константы и рабочие области, необходимые программе. Регистр сегмента данных ( DS ) адресует данный сегмент.
  • Сегмент стека ( .STACK ). Стек содержит адреса возврата как для программы (для возврата в операционную систему), так и для вызовов подпрограмм (для возврата в главную программу). Регистр сегмента стека ( SS ) адресует данный сегмент. Адрес текущей вершины стека задается регистрами SS:ESP .

Регистры дополнительных сегментов ( ES, FS, GS ), предназначены для специального использования.

Для доступа к данным внутри сегмента обращение производится относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Для обращения к любому адресу в программе, компьютер складывает адрес в регистре сегмента и смещение — расположение требуемого адреса относительно начала сегмента. Например, первый байт в сегменте кодов имеет смещение 0, второй байт – 1 и так далее.

Таким образом, для обращения к конкретному физическому адресу ОЗУ необходимо определить адрес начала сегмента и смещение внутри сегмента.
Физический адрес принято записывать парой этих значений, разделенных двоеточием

сегмент : смещение

Страничная модель памяти – это надстройка над сегментной моделью. ОЗУ делится на блоки фиксированного размера, кратные степени 2, например 4 Кб. Каждый такой блок называется страницей . Основное достоинство страничного способа распределения памяти — минимально возможная фрагментация. Однако такая организация памяти не использует память достаточно эффективно за счет фиксированного размера страниц.

Плоская модель памяти предполагает, что задача состоит из одного сегмента, который, в свою очередь, разбит на страницы.
Достоинства:

  • при использовании плоской модели памяти упрощается создание и операционной системы, и систем программирования;
  • уменьшаются расходы памяти на поддержку системных информационных структур.

В абсолютном большинстве современных 32(64)-разрядных операционных систем (для микропроцессоров Intel) используется плоская модель памяти.

Модели памяти

Директива .MODEL определяет модель памяти, используемую программой. После этой директивы в программе находятся директивы объявления сегментов ( .DATA, .STACK, .CODE, SEGMENT ). Синтаксис задания модели памяти

.MODEL модификатор МодельПамяти СоглашениеОВызовах

Параметр МодельПамяти является обязательным.

Способы адресации информации в памяти электронных вычислительных машин;

Адресация информации – это способ использования адресной части команды для адресации информации в памяти ЭВМ. Память ЭВМ имеет трехуровневую иерархическую структуру, поэтому сначала рассмотрим адресацию информации в памяти различных уровней, т.е. как организуется адресное пространство ЭВМ, а затем — как используется адресная часть команды для указания местоположения информации в этом адресном пространстве. Типичная схема адресного пространства представлена на рисунке 2.16.

Следует отметить, что в адресном пространстве процессора информация адресуется обычно с точностью до байта. В адресном пространстве ввода-вывода адресуется не информация, а периферийные устройства ПУ1, ПУ2, … ПУN, обращение к которым осуществляется через регистры, входящие в состав контроллеров ПУ. Каждому ПУ выделяется не мене трех регистров различного назначения – регистры данных, состояния и управления. Эти регистры нумеруются и образуют адресное пространство ввода-вывода. Информация же располагается на носителях информации (съемных или нет) ПУ. На них информация организуется в виде массивов, которым присваиваются различные имена, — так называемых файлов. Имя файла используется при обращении к массиву на носителе информациии. Местоположение файлов на носителе информации хранится в каталоге. Каталог – это таблица, в которой указывается соответствие имен файлов и их физических адресов. Сам каталог располагается также на носителе информации, т. е. каталог – это тоже файл, только специфический, адресный.

Читать еще:  Unit в адресе что это

Элементы информации, из которых состоит файл, становятся доступны ЦП только после ввода файла в ОП. Отсюда понятие ввода-вывода информации. Процесс ввода-вывода осуществляется обычно через РД периферийного устройства, побайтно (через узкое ‘горлышко’).

Следует отметить, что ввод-вывод файлов, т.е. обмен информацией между ОП и ПУ, осуществляется под управлением алгоритма ввода-вывода. Это достаточно сложный алгоритм. В ВТ он обычно реализуется либо программными средствами (чаще всего), либо аппаратными.

В этом параграфе мы рассмотрим, как используется адресная часть команд для адресации информации в адресном пространстве процессора, т.е. как адресуются регистры ЛП (РОНы), как адресуются ячейки ОП, как адресуются ПУ, т.е. регистры ПУ.

Регистры памяти первого уровня адресуются напрямую (прямая регистровая адресация), путём указания номера регистра из набора: 0,1, . ,N-1. Номер регистра указывается в адресной части команды и называется адресом типа R. При программировании на ассемблере используются буквенные имена (обозначения) для РОНов. При трансляции в машинные коды имя регистра преобразуется в номер регистра, который указывается в поле R команды (длина поля k зависит от количества РОНов, k=3,4,5, . ).

Данные, которые расположены в ячейках ОП, можно адресовать различными способами.

Прямая адресация— в адресной части команды указывают ячейки ОП (адрес типа А). Если это байт — то номер байта, если это слово — то номер слова. Основные недостатки прямой адресации: 1) длина адреса А m – переменная величина, т. к. зависит от емкости ОП: m=log2EОП ( EОП=2 m ), 2) m принимает большие значения, т.к. емкость ОП современных ЭВМ измеряется мегабайтами. Поэтому прямая адресация обычно используется только для фиксированной части ОП (например, n=16; 2 16 =64KB), т.е. с помощью прямого адреса фиксированной длины n можно адресовать часть ОП — т.н. страницу ОП емкостью 2 n =ЕСТР, n=const, n n . Адрес А ячейки памяти формируется из двух полей: А=Р.D, Р – номер страницы (старшие разряды адреса), D – номер ячейки в странице (младшие разряды адреса). Номер страницы Р заносится и хранится в специальном регистре номера страницы РС ЦП, адрес ячейки D указывается в адресном поле команды. Формирование физического (исполнительного) адреса А, по которому производится обращение к ОП, осуществляется по схеме, представленной на рисунке 2.17.


Недостатки: 1) сложности с организацией переходов в программе за пределы страницы. При таком переходе необходимо модифицировать содержимое регистра номера страницы в ЦП – Р:=Р+DР (Р-DР), т. е. требуется выполнение дополнительных операций с регистром Р, что снижает быстродействие процессора; 2) увеличивается длина программы – за счет модификации регистра Р, что также ведет к увеличению времени выполнения программы и снижению производительности процессора. Следует отметить, что регистр Р обычно загружается и модифицируется ОС.

В ЭВМ типа IBM РС страничная адресация в классическом (чистом) виде не используется. В РС используется более общая адресация, т.н. относительная (базовая) адресация.

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

где BM — базовый адрес массива данных М — страницы ёмкостью 2 n , D — смещение относительно начала массива М (рисунок 2.18). Отсюда название способа: относительная, базовая адресация. Базовый адрес BM указывается в специальном регистре ЦП — базовом регистре, отсюда — второе название способа — базовая адресация. Смещение D указывается в адресной части команды. Формирование иполнительного адреса А осуществляется по схеме, представленной на рисунке 2.18. В поле В команды указывается номер регистра в локальной памяти ЛП, который используется в качестве базового

Вычисление относительного адреса А производится по формуле (2.8): базовый адрес BM извлекается из ЛП по номеру В и складывается со смещением D из адресной части команды – А=[В]+D. Здесь [В] – содержимое регистра ЛП с номером В. Сложение проиводится по схеме:

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

В PC роль базового регистра ЦП могут выполнять регистры BX, BP, а также сегментные регистры CS, DS, ES, SS.

Следует отметить, что страничная адресация является частным случаем относительной (базовой) адресации: младшие n разрядов базового адреса равны нулю, а старшие содержат номер страницы, т.е. в случае страничной адресации на базовый адрес накладывается ограничение – он должен быть кратным 2 n , емкости страницы.

Таким образом, относительная адресация обеспечивает: перемещаемость программ и данных, расширение адресного пространства ОП до 2 m , уменьшение длины адресной части команды.

Четвертый способ— косвенная адресация:– в адресной части команды указывается не прямой, а косвенный адрес операнда Ак, т.е. адрес адреса операнда: Ак®А®О. По адресу Ак производится первое обращение к памяти и извлекается адрес операнда А, а затем уже по адресу А производится второе обращение и извлекается операнд О.

Достоинства: 1) возможность обработки адреса операнда – А=А ± DА,

2) уменьшение длины адресной.части команды при косвенной регистровой адресации, т. к. адрес типа R короче адреса типа А.

При косвенной адресации в качестве регистров в IBM РС могут использоваться регистры ВХ, DX, SI, DI и др.

Пятыйспособадресации— индексная адресация — используется для адресации элементов массивов (переменных с индексами): xiÎХ,

Х=, x1, . xI>, i – порядковый номер элемента в массиве Х. Суть: адрес элемента xi складывается из двух составляющих:

где BX – базовый (начальный) адрес массива Х, указывается в адресной части команды, i – индекс, указывается в специальном индексном регистре ЦП, — адрес элемента xi. В качестве индексного регистра можно использовать один из РОН. В этом случае вычисление адреса А осуществляется по формуле:

В РС в качестве индексных регистров можно использовать регистры SI, DI. Модифицикация индекса i осуществляется по схеме i=i ± Di, т.е. путём выполнения операций с индексными регистрами BI, DI.

Шестой способ — индексно-относительная адресация — совместное использование индексной и относительной адресации. Адрес А формируется как сумма трех величин:

где: — [X] = i — индекс, BX=[B]+D =BМ+D – базовый адрес массива Х.

Седьмой способ —непосредственная адресация — адресная часть команды используется непосредственно для размещения операнда О:

KO ½1 О nОперанд О – это обычно константа.

Восьмой —неявная адресация— по умолчанию (по договорённости) известно положение одного из операндов. Используется с целью экономии адресного поля в формате команды: КО |1 А m .Схема выполнения операции: АС:=АС*[А]. Первый операнд извлекается из регистра-аккумулятора АС по умолчанию, второй операнд – из памяти по адресу А, указанному в адресной части команды, над ними выполняется операция S, заданная КО, и результат заносится в регистр АС.

В РС неявная адресация используется в командах ввода-вывода IN/OUT, в которых в адресной части команды указывают адрес порта ввода-вывода, а источником (приёмником) является регистр-аккумулятор ЦП: АС«порт. Кроме того, в РС неявная адресация используется для указания местоположения операндов в сложных операциях с плавающей запятой (неявная адресация регистров).

Итак, рассмотренные 8 способов адресации используются для адресации информации в адресном пространстве ЦП, которое включает пространство ЛП (РОН), пространство ОП и пространство ввода-вывода. Размер адресного пространства и длина адреса, по которому производится обращение к элементам адресного пространства, связаны известным соотношением Е=2 m , m — длина адреса. Отсюда следует, что для обращения, например, к байту ОП на адресный вход ОП необходимо подавать m — разрядный адрес А от источника запроса, например, от ЦП. Для этих целей обычно используют ША шириной m разрядов. Например, в РС АТ m=24, в 32-разрядных РС — m=32 разряда. Информация передаётся (принимается) по ШД. В РС, например, ШД 16-разрядная, в 32-разрядных компьютерах разрядность ШД n=32. Направление обмена задаётся по шине управления ШУ путём подачи сигнала управления ЧТ (ЗП).

Способы адресации информации в памяти ЭВМ

Адресация информации – это способ использования адресной части команды для адресации информации в памяти ЭВМ. Память ЭВМ имеет трехуровневую иерархическую структуру, поэтому сначала рассмотрим адресацию информации в памяти различных уровней, т.е. как организуется адресное пространство ЭВМ, а затем — как используется адресная часть команды для указания местоположения информации в этом адресном пространстве. Типичная схема адресного пространства представлена на рисунке 2.12.

Следует отметить, что в адресном пространстве процессора информация адресуется обычно с точностью до байта. В адресном пространстве ввода-вывода адресуется не информация, а периферийные устройства ПУ1, ПУ2, … ПУN, обращение к которым осуществляется через регистры, входящие в состав контроллеров ПУ. Каждому ПУ выделяется не менее трех регистров различного назначения – регистры данных, состояния и управления. Эти регистры нумеруются и образуют адресное пространство ввода-вывода. Информация же располагается на носителях информации (съемных или нет) ПУ. На них информация организуется в виде массивов, которым присваиваются различные имена, — так называемых файлов. Имя файла используется при обращении к массиву на носителе информации. Местоположение файлов на носителе информации хранится в каталоге. Каталог – это таблица, в которой указывается соответствие имен файлов и их физических адресов. Сам каталог располагается также на носителе информации, т. е. каталог – это тоже файл, только специфический, адресный.

Читать еще:  Система адресации в internet

Таким образом, обращение к информации на логическом уровне осуществляется по имени файла, а на физическом — по номеру ПУ и номеру блока информации на носителе информации:

Элементы информации, из которых состоит файл, становятся доступны ЦП только после ввода файла в ОП. Отсюда понятие ввода-вывода информации. Процесс ввода-вывода осуществляется обычно через регистр (порт) данных РД периферийного устройства (побайтно, пословно – зависит от разрядности шины данных интерфейса, к которому подключено ПУ, т.е. через узкое ‘горлышко’, поэтому медленно, долго.

Следует отметить, что ввод-вывод файлов, т.е. обмен информацией между ОП и ПУ, осуществляется под управлением алгоритма ввода-вывода. Это достаточно сложный алгоритм. Он реализуется либо программными средствами (чаще всего), либо аппаратными.

В этом параграфе мы рассмотрим, как используется адресная часть команд для адресации информации в адресном пространстве процессора, т.е. как адресуются регистры локальной (регистровой) памяти ЛП (РОНы), как адресуются ячейки ОП, как адресуются ПУ, т.е. регистры ПУ.

Регистры памяти первого уровня адресуются напрямую (прямая регистровая адресация), путём указания номера регистра из набора: 0,1, . ,К-1. Номер регистра указывается в адресной части команды и называется адресом типа R. При программировании на ассемблере используются буквенные имена (обозначения) для РОНов. При трансляции в машинные коды имя регистра преобразуется в номер регистра, который указывается в поле R команды. Длина поля k зависит от количества регистров K: k=log2K.

Пример: MOV AX,BX ®

Регистры в пространстве ввода-вывода адресуются аналогично, т.е. напрямую, только длина полей R больше, т.к. регистров больше. Эти регистры размещены в контроллерах ПУ, подключаемых к интерфейсам, поэтому они снабжены интерфейсной логикой и называются портами ввода-вывода.

Адресация ячеек ОП. Данные, которые расположены в ячейках ОП, можно адресовать различными способами. Простейший из них – прямая адресация ячеек.

1. Прямая адресация— в адресной части команды указывают адрес ячейки ОП (адрес типа А). Если это байт — то номер байта, если это слово — то номер слова. Недостатки прямой адресации:

1) длина адреса А m – переменная величина, т. к. зависит от емкости ОП: m=log2EОП ( EОП=2 m ), что недопустимо, т.к. m – константа,

2) m принимает большие значения, т.к. емкость ОП современных ЭВМ измеряется многими мегабайтами, что увеличивает длину команды,

3) основной недостаток – она не обеспечивает перемещаемость программ и данных, точнее – их перемещение требует пересчета адресов типа А.

В силу указанных недостатков прямая адресация для адресации всей ОП обычно не используется, а используется для адресации лишь фиксированной части ОП (например, n=16; 2 16 =64KB), т.е. с помощью прямого адреса фиксированной длины n можно адресовать часть ОП — т.н. страницу ОП емкостью 2 n =ЕСТР, n=const, n n (рисунок 2.13). Адрес А ячейки памяти формируется из двух полей: А=Р.D, Р – номер страницы (старшие разряды адреса), D – номер ячейки в странице (младшие разряды адреса). Номер страницы Р заносится и хранится в специальном регистре номера страницы РС в ЦП, адрес ячейки указывается в адресном поле D команды. Поле D интерпретируется как смещение относительно начала страницы. Формирование физического (исполнительного) адреса А, по которому производится обращение к ОП, осуществляется по схеме, представленной на рисунке 2.13. Длина поля Р – l бит, длина поля D – n бит, длина поля А – m = l +n бит.

Достоинства страничной адресации:

1) обеспечивает перемещаемость программ и данных путем занесения номера текущей страницы в регистр РС. Программа остается неизменной,

2) длина поля D небольшая n k . В результате получаем третий способ – классическую относительную адресацию.

3. Относительная адресация. Суть: адрес А ячейки памяти формируется путем суммирования двух полей:

где BM — базовый адрес массива данных М — страницы ёмкостью 2 n , D — смещение относительно начала массива М (рисунок 2.14). Отсюда название способа: относительная адресация. Базовый адрес BM указывается в специальном регистре ЦП — базовом регистре, отсюда — второе название способа — базовая адресация. Смещение D указывается в адресной части команды. Формирование исполнительного адреса А осуществляется по схеме, представленной на рисунке 2.14.

В поле В команды указывается номер регистра локальной памяти ЛП, который используется в качестве базового регистра ЦП (для хранения базового адреса массива). Вычисление относительного адреса А производится по формуле (2.5): базовый адрес BM извлекается из ЛП по номеру В и складывается со смещением D из адресной части команды. Здесь [В] – содержимое регистра ЛП с номером В. Сложение производится по схеме:

Итак, страничная адресация является частным случаем относительной – при страничной адресации базовый адрес кратен 2 n . Оба способа обеспечивают перемещаемость программ и данных, а также расширение адресного пространства до 2 m .

4.Косвенная адресация:– в адресной части команды указывается не прямой, а косвенный адрес операнда Ак, т.е. адрес адреса операнда: Ак®А®О. По адресу Ак производится первое обращение к памяти и извлекается адрес операнда А, а затем уже по адресу А производится второе обращение и извлекается операнд О. Основное назначение косвенной адресации – обеспечить возможность обработки адреса А путем выполнения операций: А=А±DА (не изменяя кода программы).

Недостаток косвенной адресации – дополнительное обращение к памяти и, как следствие, уменьшение быстродействия ЦП. Этот недостаток можно сгладить, если адрес А хранить не в ОП, а в ЛП, т.е. использовать косвенный адрес типа Rк, который и указывается в адресной части команды. Схема формирования адреса в этом случае имеет вид, представленный на рисунке 2.15. Поскольку время обращения к регистрам ЛП обычно в 5…10 раз меньше, чем к ячейкам ОП, то время выборки операнда увеличивается незначительно – на 10…20%.

Достоинства: 1) возможность модификации адреса А=А ± DА,

2) уменьшение длины адресной части команды при косвенной регистровой адресации, т. к. адрес типа R короче адреса типа А.

5. Индексная адресация — используется для адресации элементов массивов (переменных с индексами): xiÎХ, Х=, x1, . xI>, i – порядковый номер элемента в массиве Х. Адрес элемента xi складывается из двух составляющих:

где BX – базовый (начальный) адрес массива Х, указывается в адресной части команды, i – индекс, указывается в специальном индексном регистре ЦП, — адрес элемента xi. В качестве индексного регистра можно использовать один из РОН локальной памяти ЛП. В этом случае вычисление адреса А осуществляется по формуле:

Модификация индекса i осуществляется по схеме i=i ± Di, т.е. путём выполнения операций с индексными регистрами. Индексная адресация внешне похожа на относительную, однако между ними есть принципиальные отличия, вытекающие из их различного назначения: базовый адрес ВХ массива Х размещается не в регистре, а в адресном поле команды, индекс i не в адресном поле, а в индексном регистре.

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

6. Индексно-относительная адресация — совместное использование индексной и относительной адресации. Адрес А формируется как сумма трех величин:

где: — [X] = i — индекс, BX=[B]+D =BМ+D – базовый адрес массива Х, [B] — базовый адрес массива данных, D — смещение.

Схема формирования адреса А представлена на рисунке 2.17.

7.Непосредственная адресация — адресная часть команды используется непосредственно для размещения операнда О:

KO ½1 О n Операнд О – это обычно константа.

Пример MOV CX,2 ®формат команды

8.Неявная адресация— по умолчанию (по договорённости) известно положение одного из операндов. Используется с целью экономии адресного поля в формате команды: КО |1 А m .Схема выполнения операции: АС:=АС*[А]. Первый операнд извлекается из регистра-аккумулятора АС по умолчанию, второй операнд – из памяти по адресу А, указанному в адресной части команды, над ними выполняется операция S, заданная КО, и результат заносится в регистр АС.

Итак, рассмотренные 8 способов адресации используются для адресации информации в адресном пространстве ЦП, которое включает пространство ЛП (РОН), пространство ОП и пространство ввода-вывода. Размер адресного пространства и длина адреса, по которому производится обращение к элементам адресного пространства, связаны известным соотношением Е=2 m , m — длина адреса. Отсюда следует, что для обращения, например, к байту ОП на адресный вход ОП необходимо подавать m — разрядный адрес А от источника запроса, например, от ЦП. Для этих целей обычно используют ША шириной m разрядов

Ссылка на основную публикацию
Adblock
detector