Способы адресации памяти, страница 2

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

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

Регистровой называется адресация, при которой исполнительный адрес операнда извлекается из некоторого (обычно индексного) регистра.

При косвенной адресации по адресу, указанному в команде, выбирается слово, которое интерпретируется как адрес операнда. Помимо общеизвестных возможностей косвенная адресация в МП может также служить для более экономного задания адреса. Например можно адресоваться коротким адресом к нулевой или текущей странице ЗУ и извлекать из нее адрес более высокой разрядности. Это также является примером сочетания в одной команде относительной и косвенной адресации.

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

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