Лекция 6. Способы адресации в микропроцессорных системах
Для взаимодействия с различными модулями в ЭВМ должны быть средства идентификации ячеек внешней памяти, ячеек внутренней памяти, регистров МП и регистров устройств ввода/вывода. Поэтому каждой из запоминающих ячеек присваивается адрес, т.е. однозначная комбинация бит. Количество бит определяет число идентифицируемых ячеек. Обычно ЭВМ имеет различные адресные пространства памяти и регистров МП, а иногда - отдельные адресные пространства регистров устройств ввода/вывода и внутренней памяти. Кроме того, память хранит как данные, так и команды. Поэтому для ЭВМ разработано множество способов обращения к памяти, называемых режимами адресации. Режим адресации памяти - это процедура или схема преобразования адресной информации об операнде в его исполнительный адрес. Режимы адресации
Все способы адресации памяти можно разделить на: 1) прямой, когда исполнительный адрес берется непосредственно из команды или вычисляется с использованием значения, указанного в команде, и содержимого какого-либо регистра (прямая адресация, регистровая, базовая, индексная и т.д.); 2) косвенный, который предполагает, что в команде содержится значение косвенного адреса, т.е. адреса ячейки памяти, в которой находится окончательный исполнительный адрес (косвенная адресация). В каждой микроЭВМ реализованы только некоторые режимы адресации, использование которых, как правило, определяется архитектурой МП. Режимы адресации
Форматы команд и способы адресации Обработка информации в микропроцессорной системе осуществляется автоматически, путем программного управления. Программа представляет собой алгоритм обработки данных, записанный в виде последовательности команд, которые должны быть выполнены системой для получения требуемого результата. Команда представляет собой код, определяющий операцию обработки информации и данные, участвующие в этой операции. По характеру выполняемых операций все возможные команды условно делят на несколько основных групп: а) команды арифметической обработки; б) команды логической обработки; в) команды передачи (пересылки) кодов; г) команды ввода-вывода; д) команды передачи управления; е) команды управления режимами работы микропроцессора и др.
Код команды можно представить состоящим из нескольких частей или полей, имеющих определенное функциональное назначение. В общем случае, команда состоит из кода операции (КОП) и адресной части (Поля адресов). Форматы команды Код операции – задает действие (сложение, умножение, передача), определяемое командой. А поле адресов – содержит информацию о расположении подлежащих обработке операндов, расположении результата, а в некоторых случаях, и о месте расположения следующей команды. Иногда в коде команды могут содержаться и сами данные, тогда для них выделяется отдельное поле – поле данных. Формат команды – это совокупность сведений о длине, составе, назначении и взаимном расположении частей, или информационных полей в составе команды.
Двоичный n-разрядный номер ячейки памяти, к которой нужно обратиться в ходе выполнения вычислительного процесса, принадлежащий этой и только этой ячейке – называется полным физическим или исполнительным адресом. Процедура вычисления исполнительного адреса определяется способами адресации и расположением самих операндов, которые могут находиться: - в самой команде; - в регистрах микропроцессора; - в памяти, т.е. в ОЗУ; - в устройствах ввода-вывода. Способы адресации
Следует различать понятия исполнительный адрес и адресный код в формате команды. Исполнительный адрес это номер ячейки памяти, к которой производится фактическое обращение. Адресный код это информация об адресе операнда, содержащаяся в команде. В современных микросистемах, адресный код часто не совпадает с исполнительным адресом. Выбор способов адресации, формирования исполнительного адреса и преобразования адресов является одним из важнейших вопросов разработки ЭВМ. Способы адресации команд
Команды разных микропроцессорных систем могут использовать различные способы адресации, которые применяются как сами по себе, так и совместно друг с другом. Рассмотрим некоторые способы адресации, широко используемые в современных ЭВМ: Неявная адресация. В команде не содержится явных указаний об адресе участвующего в операции операнда или адреса, по которому помещается результат операции, но этот адрес, так или иначе, подразумевается. И в конечном итоге жестко привязан к выполняемой операции. Прямая адресация. Исполнительный адрес совпадает с адресной частью команды. Этот способ адресации был общепринятым в первых вычислительных машинах и продолжает применяться в настоящее время в комбинации с другими способами. Способы адресации команд
Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд. Такая адресация удобна для хранения различного рода констант. Относительная адресация или базирование. Исполнительный адрес определяется суммой адресного кода команды А К и некоторого числа А Б называемого базовым адресом: А И = А Б + А К Относительная адресация позволяет при меньшей длине адресного кода команды обеспечить доступ к любой ячейке памяти. Для этого число разрядов в базовом адресе выбирают таким, чтобы можно было адресовать любую ячейку ОЗУ, а адресный код АК самой команды используют для представления лишь сравнительно короткого «смещения». Способы адресации команд
Регистровая адресация. Для уменьшения длины адресного кода, используются регистры микропроцессора, в качестве фиксированных ячеек с короткими адресами. (Если таких регистров 16, то для адресации одного из них достаточно четырех двоичных разрядов.). Применение регистровой адресации наряду с сокращением длины адресов операндов, позволяет увеличить скорость выполнения операций, так как уменьшается число обращений к ОЗУ через системную магистраль. Косвенная адресация. Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Таким образом, косвенная адресация может быть иначе определена как «адресация адреса». Способы адресации команд
Автоинкрементная и автодекрементная адресации. Обеспечивает эффективную работу с массивами данных, за счет формирования адреса следующего элемента массива путем автоматического приращения или уменьшения адреса текущего обрабатываемого элемента массива, при его косвенной адресации. Способы адресации команд
Использование всего набора способов адресации и их правильный выбор для каждого конкретного случая – позволяет: - обеспечить доступ к структурированным данным; - обеспечить перемещаемость программ и данных без изменения их кодов на этапе загрузки; - сократить длину программного кода и число обращений к магистрали; - адресовать большой объем памяти в условиях малой разрядности микропроцессора. Реализация и применение способов адресации