Способы адресации
Способ адресации определяет, каким образом следует использовать информацию, размещенную в поле адреса команды.
Существует пять основных способов адресации операндов в командах.
□ Прямая — в этом случае в адресном поле располагается адрес операнда. Разновидность — прямая регистровая адресация, адресующая не ячейку памяти, а РОН. Поле адреса регистра имеет в команде значительно меньшую длину, чем поле адреса памяти.
□ Непосредственная — в поле адреса команды располагается не адрес операнда, а сам операнд. Такой способ удобно использовать в командах с константами.
□ Косвенная — в поле адреса команды располагается адрес ячейки памяти, в которой хранится адрес операнда ("адрес адреса"). Такой способ позволяет оперировать адресами как данными, что облегчает организацию циклов, обработку массивов данных и др. Его основной недостаток — потеря времени на двойное обращение к памяти — сначала за адресом, потом — за операндом.
□ Относительная — адрес формируется как сумма двух слагаемых: базы, хранящейся в специальном регистре или в одном из РОН, и смещения, извлекаемого из поля адреса команды. Этот способ позволяет сократить длину команды (смещение может быть укороченным, правда в этом случае не вся память доступна в команде) и/или перемещать адресуемые массивы информации по памяти (изменяя базу).
|
|
Разновидности— индексная и базово-индексная адресации. Индексная адресация предполагает наличие индексного регистра вместо базового.
□ Безадресная — поле адреса в команде отсутствует, а адрес операнда или не имеет смысла для данной команды, или подразумевается по умолчанию
Все операции, выполняемые в командах ЭВМ, принято делить на пять классов.
□ Арифметико-логические и специальные — команды, в которых выполняется собственно преобразование информации
□ Пересылки и загрузки — обеспечивают передачу информации между процессором и памятью или между различными уровнями памяти (СОЗУ <-> ОЗУ). Разновидность — загрузка регистров и ячеек константами.
□ Ввода/вывода — обеспечивают передачу информации между процессором и внешними устройствами.
□ Передачи управления — команды, которые изменяют естественный порядок выполнения команд программы. Эти команды меняют содержимое программного счетчика, обеспечивая переходы по программе.
□ Системные — команды, выполняющие управление процессом обработки информации и внутренними ресурсами процессора. К таким командам относятся команды управления подсистемой прерывания, команды установки и изменения параметров защиты памяти, команда останова программы и некоторые другие.