Remkomplekty.ru

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

Два способа адресации регистров устройств

Два способа адресации регистров устройств

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Операнды могут находиться и в регистровой, и в оперативной памяти; время обращения зависит от их местоположения. Если операнд находится в регистровой памяти, то время обращения к нему невелико. Именно с целью сокращения времени на обращение к операндам и используют регистровую адресацию. Регистровая адресация в машине IBM PC реализуется при md = 1. Адрес одного из восьми регистров, в котором размещается операнд, определяется полем r/m. Операнд может занимать весь регистр или только его половину в зависимости от значения «w».

Наиболее часто используется прямая адресация. Операнд находится в ОП, а в команде указывается его исполнительный адрес (адресный код команды Ак совпадает с исполнительным адресом Аи). В компьютерах IBM PC в этом поле команды находится не полный адрес, а только так называемое смещение, т.е. 16-битная часть исполнительного адреса. В одном из адресных регистров находится адрес сегмента; исполнительный адрес определяется сложением номера (адреса) сегмента и смещения. Этим удалось избежать самого крупного недостатка прямой адресации, а именно, необходимости слишком длинного адресного поля при большой емкости памяти.

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

Часто адрес ячейки памяти образуется из нескольких составляющих частей, например, базового адреса (или базы B), индекса (X) и смещения (D). В этих случаях различают базовую, индексную и базово-индексную адресацию. Если адрес, указанный в команде, состоит из двух частей – АB и АСМ, то полный адрес ячейки памяти определяется суммированием содержимого регистра АB, где хранится «база», и смещения АСМ, рис. 5.4 (см. дополнительно рисунки).

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

Аналогично выполняется и индексная адресация. Однако после выполнения обращения к ячейке памяти с адресом A = (AX) + A СМ производится увеличение индекса X, записанного в индексном регистре, на единицу. Так «автоматически» определяется адрес следующего подлежащего обработке элемента в массиве. Использование индексной адресации упрощает создание циклических программ.

Часто используют комбинированную базово-индексную адресацию. В этом случае адрес ячейки памяти определяется суммой содержимого регистров базы и индекса, а также смещения, содержащегося в команде, рис. 5.5 (см. дополнительно рисунки). Иногда используют не сложение, а «сцепление» кодов базы, индекса и смещения. Это значит, что исполнительный адрес A = AB,AX,AСМ.

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

Все виды адресации в компьютере IBM PC определяют место расположения и способ нахождения адреса второго операнда; первый операнд всегда находится в одном из регистров. Для компьютеров IBM PC многочисленные способы адресации отчасти достались «по наследству» от ранних моделей микропроцессоров, когда разрядность была ограничена.

Выбору реализуемой компьютером системы команд должно уделяться самое серьезное внимание. Каждая аппаратно реализуемая операция, входящая в систему команд, выполняется быстрее, чем аналогичная операция, не входящая в систему команд и, следовательно, реализуемая в виде подпрограммы. На первый взгляд из этого следует, что увеличение аппаратно реализуемых операций, т.е. расширение системы команд, может привести к повышению быстродействия машины. Это положение положено в основу концепции архитектуры компьютера с расширенным набором команд – CISC архитектур. Однако в силу ряда причин расширение системы команд может приводить и к обратным результатам. Именно это обстоятельство и послужило толчком для разработки машин с сокращенным набором команд – RISC архитектур.

1. Система прерываний. Запросы прерываний. Характеристики системы прерываний.

Два способа адресации регистров устройств

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

Режим адресации памяти — это процедура или схема преобразования адресной информации об операнде в его исполнительный адрес.

Все способы адресации памяти можно разделить на:
1) прямой, когда исполнительный адрес берется непосредственно из команды или вычисляется с использованием значения, указанного в команде, и содержимого какого-либо регистра (прямая адресация, регистровая, базовая, индексная и т.д.);
2) косвенный, который предполагает, что в команде содержится значение косвенного адреса, т.е. адреса ячейки памяти, в которой находится окончательный исполнительный адрес (косвенная адресация).

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

Типы архитектур

Существует несколько подходов к классификации микропроцессоров по типу архитектуры. Так, выделяют МП с CISC (Complete Instruction Set Computer) архитектурой, характеризуемой полным набором команд, и RISC (Reduce Instruction Set Computer) архитектурой, которая определяет систему с сокращенным набором команд одинакового формата, выполняемых за один такт МП.

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

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

Читать еще:  Локальный адрес канала

Мы рассмотрим более подробно основные типы архитектурных решений, выделяя связь со способами адресации памяти.
1. Регистровая архитектура определяется наличием достаточно большого регистрового файла внутри МП. Команды получают возможность обратиться к операндам, расположенным в одной из двух запоминающих сред: оперативной памяти или регистрах. Размер регистра обычно фиксирован и совпадает с размером слова, физически реализованного в оперативной памяти. К любому регистру можно обратиться непосредственно, поскольку регистры представлены в виде массива запоминающих элементов — регистрового файла. Типичным является выполнение арифметических операций только в регистре, при этом команда содержит два операнда (оба операнда в регистре или один операнд в регистре, а второй в оперативной памяти).

К данному типу архитектуры относится микропроцессор фирмы Zilog. Процессор Z80 — детище фирмы Zilog помимо расширенной системы команд, одного номинала питания и способности исполнять программы, написанные для i8080, имел архитектурные «изюминки».

Рисю 2.5. Микропроцессор Z80 фирмы Zilog.

В дополнение к основному набору РОН, в кристалле был реализован второй комплект аналогичных регистров. Это значительно упрощало работу при вызове подпрограмм или процедур обслуживания прерываний, поскольку программист мог использовать для них альтернативный набор регистров, избегая сохранения в стеке содержимого РОНов для основной программы с помощью операций PUSH. Кроме того, в систему команд был включен ряд специальных инструкций, ориентированных на обработку отдельных битов, а для поддержки регенерации динамической памяти в схему процессора введены соответствующие аппаратные средства. Z80 применялся в машинах Sinclair ZX, Sinclair Spectrum, Tandy TRS80.

Предельный вариант — архитектура с адресацией посредством аккумуляторов (меньший набор команд).

МП фирмы Motorola имел ряд существенных преимуществ. Прежде всего, кристалл МС6800 требовал для работы одного номинала питания , а система команд оказалась весьма прозрачной для программиста. Архитектура МП также имела ряд особенностей.

Рис 2.6. Микропроцессор МС6800 фирмы Motorola.

Микропроцессор МС 6800 содержал два аккумулятора, и результат операции АЛУ мог быть помещен в любой из них. Но самым ценным качеством структуры МС 6800 было автоматическое сохранение в стеке содержимого всех регистров процессора при обработке прерываний (Z80 требовалось для этого несколько команд PUSH). Процедура восстановления РОН из стека тоже выполнялась аппаратно.

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

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

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

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

Прямая адресация – исполнительный адрес размещается в адресном поле команды. В этом способе непосредственно используется счетчик команд и аккумулятор МП. При прямой адресации содержимое счетчика команд передается на ША и из адресуемой ячейки выбирается очередная команда, поступающая в устройство управления МП. С помощью прямой адресации в АЛУ может вызываться и операнд. Для этого на ША передается адрес ячейки памяти, содержащийся в команде. При необходимости изменения последовательного порядка выполнения программы адресуется ячейка памяти, содержащая адрес условного или безусловного перехода. Команда, содержащая прямой адрес, занимает 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, а сам «регистр М» физически находится вне процессора).

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

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

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

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

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

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

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

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

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

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

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

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

Два способа адресации регистров устройств

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

— адресный код — информация об адресе операнда, содержащаяся в команде.

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

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

В команде не содержится явных указаний об адресе операнда, операнд подразумевается и фактически задается кодом операции:

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

В команде отсутствует адрес операнда или результата, но этот адрес подразумевается.

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

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

Исполнительный адрес соответствует адресному коду. В команде находится сам адрес.

“-” длинный адрес, необходимо считывать.

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

Исполнительный адрес определяется суммой адресного кода команды и некоторого числа (базового адреса)

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

“+” меньшая длина адресного кода, при обращении к любой ячейки памяти. В команде указывается только смещение.

Различают адресацию суммированием и совмещением.

а) используется чаще, но сложение — долго.

б) базовый адрес содержит старшие разряды, а следующий младшие разряды.

“-” не возможна адресация всей ОП.

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

Адресный код содержит только часть адреса (младшие или старшие разряды). Остальное подразумевается. Может использоваться только совместно с другими способами адресации.

Используется для уменьшения длины команды.

7. Регистровая адресация

Частный случай укороченной адресации

16 РОН — 4 разряда адреса

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

Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда.

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

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

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

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

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

Стековая память реализует безадресное задание операндов.

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

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

Т.к. указатель стека должен изменятся автоматически, то при операциях со стеком используется безадресное задание операнда, т.е. команда не содержит адреса ячейки стека (но содержит адрес 2-го операнда).

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

-, +, * — безадресная команда операций.

Команды операций выбираются из стека 1 или 2 операнда, выполняют операцию и записывают результат в стек.

Такой способ позволяет уменьшить длину команд и увеличить быстродействие, но является сложным и уменьшает возможность других команд (передача управления, ввод/вывод, . )

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×