рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

РЕЖИМЫ АДРЕСАЦИИ

РЕЖИМЫ АДРЕСАЦИИ - раздел Компьютеры, Принципы функционирования ЭВМ. Учебное пособие по курсам «Технология программирования» и «Операционные системы» При Выполнении Программы Многим Командам Требуется Доступ К Памяти Для Выборк...

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

a)определять полный адрес памяти меньшим числом бит, тем самым, сокращая длину команды;

b)обращаться к ячейкам памяти, адреса которых вычисляются во время выполнения программы, что обеспечивает удобный доступ к данным различной структуры;

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

Рассмотрим основные способы формирования адресов операндов в современных ЭВМ и опишем их основные особенности.

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

Абсолютная или прямая адресация.Этот режим адресации также достаточно прост. Часть команды является адресом операнда в памяти. Из-за своей простоты этот режим используется во многих ЭВМ. Этот способ адресации достаточно быстр, так как при поиске адреса не требуется никаких дополнительных вычислений. Однако указание полного прямого адреса операнда в команде требует много бит, особенно в ЭВМ с большим объемом адресного пространства. Кроме этого стоит отметить, что если в командах программы указаны полные адреса ее операндов, программа оказывается “жестко привязанной” к конкретным адресам памяти. Это не всегда оправдано, так как часто желательно иметь возможность размещать программы в произвольных участках памяти достаточного размера, к тому же иногда возникает необходимость переместить программу на другое место в памяти. Поэтому для устранения этих недостатков многие ЭВМ используют короткие разновидности прямой адресации (см. ниже относительную адресацию). Такие методы адресации обеспечивают доступ к ограниченной части адресного пространства.

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

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

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

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

Неявная или подразумеваемая адресация.При таком способе адресации в команде явно не указывается адрес одного или нескольких операндов. Операнды в командах с неявной адресацией могут находиться, например, в выделенных для этой команды регистрах процессора, или некоторый выделенный и заранее известный регистр процессора может содержать адрес операнда. Примерами команд с неявной адресацией могут служить многие команды микропроцессоров семейства 8086. Рассмотрим команду организации цикла со счетчиком повторения. В этой команде не указывается явно, какой из регистров содержит счетчик цикла и предполагается, что перед выполнением команды счетчик цикла размещен в регистре - счетчике процессора (регистре CX). Другой пример - команды пересылки блоков данных, которые имеются у многих процессоров (например, REP MOVSBв 8086). Адреса операндов в этой команде явно не указываются и определяются двумя индексными регистрами процессора, куда они должны быть предварительно загружены. При выборке операндов неявно используется адресация с автоувеличением или автоуменьшением.

Индексная адресацияудобна для обращения к массивам и таблицам. Для образования исполнительного адреса к адресной части команды прибавляется смещение из индексного регистра, называемое индексом (см. рис. 14). Индексный регистр является программно - доступным, и его содержимое может изменяться, что позволяет изменять исполнительные адреса без модификации адресной части команды. В качестве индексных регистров используются один или несколько специализированных регистров, в некоторых ЭВМ их функции выполняют регистры общего назначения. Когда индексный режим используется для доступа к массиву, адрес в команде соответствует базовому адресу массива, а значение индексного регистра - индексу компоненты массива.

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

Первый способ называется самоопределяющейся относительной адресацией.В этом случае смещение, указанное в команде, складывается с адресом самой команды (обычно это текущее содержимое программного счетчика). Такой способ широко используется в командах условной передачи управления многих процессоров. Анализ программ показывает, что команды условной передачи управления чаще всего осуществляют переход на небольшое расстояние (до плюс - минус 100 - 200 байт). Поэтому во многих ЭВМ адрес перехода хранится в виде числа со знаком - короткого (8 бит) смещения целевого адреса относительно адреса команды ветвления (программного счетчика). При выполнении команды смещение просто суммируется с программным счетчиком. Применение относительной адресации в данном случае сокращает длину команды и повышает скорость ее выполнения. Другим примером может служить относительная адресация в процессорах СМ. В командах с относительной адресацией содержится смещение, которое при вычислении адреса операнда суммируется с содержимым программного счетчика. Отметим, что при таком способе адресации не нужно явно указывать, откуда брать базовый адрес (в качестве него всегда выступает программный счетчик). Поэтому этот способ адресации иногда называют неявным базированием.

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

Разновидностью базовой адресации является сегментная адресация,применяемая в процессорах семейства 8086. Так как процессор 8086 может обрабатывать числа длиной 16 бит, все его адресные регистры являются 16-ти битными. Это обеспечивает доступ к адресному пространству размером 216 = 65536 байт или 64К байт (1К = 1024). Такой блок непосредственно адресуемой памяти называется сегментом. Любой исполнительный адрес формируется в виде суммы базового адреса начала сегмента (он всегда кратен 16) и смещения до нужной ячейки внутри сегмента. Базовый адрес сегмента задается 16-битной величиной, хранимой в сегментном регистре. Физический 20- разрядный адрес памяти (см. рис. 16) получается суммированием содержимого сегментного регистра умноженного на 16 (умножение двоичного числа на 16 эквивалентно сдвигу влево на 4 разряда) и 16-разрядного смещения относительно начала сегмента. Используя 20-разрядные адреса, процессор 8086 может адресовать память объемом 220 = 1024К = 1048576 = 1М байт. Сегменты жестко не привязываются к определенным адресам памяти и могут частично или полностью перекрываться. Термин сегментная адресация введен для того, чтобы подчеркнуть, что размер сегментного регистра хранящего базовый адрес сегмента меньше длины физического адреса, в то время как термин базовая адресация обычно подразумевает, что длина базового регистра равна или больше длины физического адреса памяти.

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

 


– Конец работы –

Эта тема принадлежит разделу:

Принципы функционирования ЭВМ. Учебное пособие по курсам «Технология программирования» и «Операционные системы»

В пособии излагаются базовые принципы организации и функционирования ЭВМ Рассмотрен состав минимальной ЭВМ с шинной организацией назначение и... Илл библиограф наим...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: РЕЖИМЫ АДРЕСАЦИИ

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

ПРИНЦИПЫ ФОН НЕЙМАНА
Большинство современных ЭВМ строятся на базе принципов, сформулированных американским ученым, одним из “отцов” кибернетики Дж. фон Нейманом. Впервые эти принципы были опубликованы фон Нейманом в 19

СОСТАВ И ФУНКЦИОНИРОВАНИЕ МИНИМАЛЬНОЙ ЭВМ С ШИННОЙ ОРГАНИЗАЦИЕЙ
Шинная организация является простейшей формой организации ЭВМ. Подобная ЭВМ имеет в своем составе следующие функциональные блоки (см. рис. 1). Устройство управления (УУ) -

КОМАНДЫ ЭВМ
В данном разделе пособия кратко рассмотрим набор команд, используемых в типичных ЭВМ и действия, реализуемые этими командами.

ПЕРЕЙТИ ЕСЛИ БОЛЬШЕ К АДРЕСУ L .
Первая из команд (сравнение) производит, как отмечалось выше, вычитание значения операнда B из операнда A. Если A>B, то результат будет положителен и, соответственно, флаг знака во флаговом реги

СИСТЕМНЫЕ ИНТЕРФЕЙСЫ С ИЗОЛИРОВАННОЙ И ОБЩЕЙ СИСТЕМОЙ ШИН
В предыдущих разделах при описании обобщенного алгоритма работы центрального процессора мы намеренно опустили из рассмотрения вопрос о том, как процессор “отличает” порты внешних устройств от ячеек

СПОСОБЫ ОБМЕНА ДАННЫМИ В МАШИНАХ С ШИННОЙ ОРГАНИЗАЦИЕЙ. МЕХАНИЗМ ПРЕРЫВАНИЙ
Рассмотрев алгоритм функционирования процессора и способы организации системы шин в ЭВМ, попытаемся выяснить, какие особенности в работу и организацию ЭВМ вносит необходимость обеспечения взаимодей

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

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

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

И ЕЩЕ О ПРЕРЫВАНИЯХ
Описанный выше механизм прерываний, или аппаратные прерывания, является эффективным способом организации взаимодействия процессора с медленными внешними устройствами и начал

ИЕРАРХИЧЕСКАЯ ОРГАНИЗАЦИЯ ПАМЯТИ
Память в современных компьютерах строится по иерархическому принципу. Одним из явлений, характерных для фоннеймановских ЭВМ является принцип локальности. Это означает, что за ограниченный промежуто

Кэш-память
Как уже говорилось выше, назначение кэш-памяти – временное хранение данных и команд, часто используемых процессором. Основной структурной единицей кэш-памяти является так называемая строка кэша (ca

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

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

Процесс переадресации виртуальной памяти
Процесс переадресацииопишем на примере микропроцессора 80386 фирмы Intel. Процесс переадресации показан на рис. 19 и 20.Перед исполнением загрузочные модели помещаются в оперативну

ФОРМАТЫ ДАННЫХ
Основными типами данных, которые встречаются при обработке информации в ЭВМ, являются числа, представленные в двоичной системе счисления, а также алфавитно-цифровые символы. Некоторые ЭВМ также осу

ИНФОРМАЦИОННАЯ МОДЕЛЬ ЭВМ
Обработка чисел, символьной информации, логическая обработка, обработка сигналов - это все частные случаи общего понятия над названием «обработка информации». Для ЭВМ характерен признак: информация

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

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

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

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

ЭВМ С КАНАЛЬНОЙ ОРГАНИЗАЦИЕЙ
В основе этого типа организации ЭВМ лежит множественность каналов связи между устройствами и функциональная специализация узлов. Упрощенная схема организации ЭВМ с каналами приведена на ри

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги