Стековая адресация
Стековая память широко
используется в современных ЭВМ. Хотя адрес
обращения в стек отсутствует в команде, он
формируется схемой управления:
Для чтения записи
доступен только один регистр v вершина стека.
Этот способ адресации используется, в частности,
системой прерывания программ при вложенных
вызовах подпрограмм.
Стековая память
реализуется на основе обычной памяти с
использованием указателя стека и автоиндексной
адресации.
Запись в стек производится с
использованием автодекрементной адресации, а
чтение — с использованием автоинкрементной
адресации.
Назад | | Вперед
Индексная адресация
Для работы программ с
массивами, требующими однотипных операций над
элементами массива, удобно использовать
индексную адресацию.
Адрес i-того
операнда в массиве определяется как сумма
начального адреса массива операнда, задаваемого
смещением S, и индекса I , записанного в
одном из регистров регистровой памяти,
называемым индексным регистром.
Адрес индексного
регистра задается в команде полем адреса индекса
Аи.
В каждом i-том
цикле содержимое индексного регистра изменяется
на постоянную величину, как правило, это 1.
В некоторых моделях ЭВМ
относительная адресация выполняется без
суммирования по следующей схеме:
Форматы команд
Алгоритм, написанный
пользователем программы, в конечном счете
реализуется в виде машинных команд. Под командой
понимают совокупность сведений, представленных
в виде двоичных кодов, необходимых процессору
для выполнения очередного шага. В ходе команды
для сведений о типе операции, адресной
информации о нахождении обрабатываемых данных, а
также для информации о месте хранения
результатов выделяются определенные разряды
(поля).
КОП | А3 | |||||
7 |
||||||
КОП | А1 | А3 | ||||
15 |
6 |
5 |
||||
КОП | А1 | А2 | А3 | |||
23 |
17 |
16 |
12 |
11 |
6 |
5 |
Форматом
команды называется заранее обговоренная
структура полей в её кодах, позволяющая ЭВМ
распознавать составные части кода.
Главным элементом кода
команды является код операции
(КОП), что определяет, какие действия будут
выполнены по данной команде. Под него выделяется N
старших разрядов формата. В остальных разрядах
размещаются А1 и А2 v адреса
операндов. А3 — адрес результата.
Распределение полей в
формате команды может изменяться при смене
способа адресации. Длина команды зависит от
числа адресных полей. По числу адресов команды
делятся на:
безадресные |
|
одно-, двух-, трехадресные |
Длина кода команды
измеряется в машинных словах. Чтобы получить
возможность работать с минимальным числом
адресных полей, результат, к примеру, можно
размещать по месту хранения одного из операндов.
Либо предварительно размещают один или
несколько операндов в специально выделенных
регистрах процессора.
Множество реализуемых
машинных действий образует её систему
команд. Система команд часто определяет
области и эффективность применения ЭВМ. Состав и
число команд должны быть ориентированы на
стандартный набор операций, используемых
пользователем для решения своих задач.
По функциональному
назначению в системе команд ЭВМ различают
следующие группы:
команды передачи данных (обмен входами между регистрами процессора, процессора и оперативной памятью, процессора и периферийными установками). |
|
Команды обработки данных (команды сложения, умножения, сдвига, сравнения-). |
|
Команды передачи управления (команды безусловного и условного перехода). |
|
Команды дополнительные (типа RESET, TEST,-). |
Группа команд передачи
управления обеспечивает принудительное
изменение порядка выполнения команд в программе.
Оттранслированные
команды записываются в соседние ячейки памяти в
порядке их следования в программе. При
естественном порядке выполнения команд в
программе, адрес каждой следующей команды
определяется по содержимому специального
счетчика команд, который входит в состав
процессора. Содержимое этого счетчика
автоматически наращивается на 1 при выполнении
очередной команды. При организации ветвления
цикла или для перехода на подпрограмму в счетчик
в счетчик команд принудительно записывается
адрес перехода, указанный в ходе команды.
Большинство
алгоритмов может быть реализовано небольшим
базовым набором команд. Вместе с тем система
команд должна быть полной, т.е. содержать все
команды, которые необходимы для интерпретации
алгоритма в машинных кодах. ЭВМ общего
назначения имеет универсальный набор команд и
применяется в основном для решения тривиальных
(стандартных) задач.
Существуют 2 различных
принципа поисков операндов в памяти:
ассоциативный и адресный.
Ассоциативный поиск |
|
Адресный поиск |
Исполнительным
адресом операнда называется двоичный код
номера ячейки памяти, по которому будет записан
или считан оператором.
Адресным кодом
команды называется двоичный код в адресном поле
команды, с помощью которого необходимо
сформировать исполнительный адрес операнда. В
ЭВМ адресный код и исполнительный адрес не
совпадают, поэтому способ адресации можно
определить, как способ формирования
исполнительного адреса по адресному коду
команды.
Способы адресации
классифицируют:
по наличию адресной информации в |
|
по кратности обращения в |
|
по способу формирования адресов |
При явной
адресации операнда в команде есть поле адреса
этого операнда.
При неявной
v адресное поле в команде отсутствует, а адрес
операнда подразумевается кодом операции.
Например, из команды может быть исключен адрес
приемника адресата, при этом подразумевается,
что результат записывается на месте второго
операнда.
По кратности обращения
в оперативную память различают:
непосредственную адресацию (direct |
|
прямую адресацию (immediate addressing) |
|
косвенную адресацию (indirect addressing) |