Классификация по способу формирования исполнительных адресов ячеек памяти
Способы формирования адресов ячеек памяти (Аи) можно разделить на абсолютные и относительные.
Абсолютные способы формирования предполагают, что двоичный код адреса ячейки памяти - Аи может быть извлечен целиком либо из адресного поля команды (в случае прямой адресации), или из какой-либо другой ячейки (в случае косвенной адресации), никаких преобразований кода адреса не производится.
Относительные способы формирования Аи предполагают, что двоичный код адреса ячейки памяти образуется из нескольких составляющих: Б - код базы, И - код индекса, С - код смещения, используемых в сочетаниях (Б и С), (И и С), (Б, И и С). При относительной адресации применяются два способа вычисления адреса Аи:
- суммирование кодов составляющих адреса
(Аи = Б + С; Аи - И + С; Аи = Б + И + С);
- совмещение (конкатенация) кодов составляющих адреса
(например Аи = Б/С).
Относительная адресация
Базирование способом суммирования.В команде адресный код Ак разделяется на две составляющие: Аб - адрес регистра в регистровой памяти , в котором хранится база Б (базовый адрес); С - код смещения относительно базового адреса (рис. 3.5).
С помощью метода относительной адресации удается получить так называемый перемещаемый программный модуль, который одинаково выполняется процессором независимо от адресов, в которых он расположен. Начальный адрес программного модуля (база) загружается, при входе в модуль, в базовый регистр. Все остальные адреса программного модуля формируются через смещение относительно начального адреса (базы) модуля. Таким образом, одна и та же программа может работать с данными, расположенными в любой области памяти, без перемещения данных и без изменения текста программы только за счет изменения содержания всего одного базового регистра. Однако время выполнения каждой операции при этом возрастает.
Базирование способом совмещения составляющих.Для увеличения емкости адресной ОП без увеличения длины адресного поля команды можно использовать для формирования исполнительного адреса совмещение (конкатенацию) кодов базы и смещения (рис. 3.6).
Рис. 3.5 Схема формирования относительного адреса способом суммирования кодов базы и смещения.
СМ – сумматор,
РАОП – регистр адреса ОП,
Б – база (базовый адрес),
С – смещение,
Аб – адрес регистра базы
Однако в данном случае начальные адреса массивов не могут быть реализованы произвольно, а должны иметь в младших разрядах n нулей, где n – длина поля смещения.
Индексная адресация.Для работы программ с массивами, требующими однотипных операций над элементами массива, удобно использовать индексную адресацию. Схема индексной адресации аналогична базированию путем суммирования (см. рис. 3.5).
В этом случае адрес i-гo операнда в массиве определяется как сумма начального адреса массива (задаваемого полем смещения С) и индекса И, записанного в одном из регистров РП, называемом теперь индексным регистром. Адрес индексного регистра задается в команде полем адреса индекса — Аин (аналогично Аб ).
В каждом i-м цикле содержимое индексного регистра изменяется на величину постоянную (часто равную 1). Использование индексной адресации значительно упрощает программирование циклических алгоритмов.
Для эффективной работы при относительной адресации применяется комбинированная индексация с базированием, при которой адрес операнда вычисляется как сумма трех величин (рис. 3.7):
Аи = Б + И + С.
Рис. 3.6.Схема формирования относительного адреса способом совмещения кодов базы и смещения.
Рис. 3.7 Схема формирования дополнительного адреса при индексной адресации и базировании: АИН - адрес индексного регистра.
Стековая адресация
Стековая память (стек) является эффективным элементом современных ЭВМ, реализует неявное задание адреса операнда. Хотя адрес обращения в стек отсутствует в команде, он формируется схемой управления автоматически по специальному правилу.
Типы данных
Основными типами данных в компьютерах являются байты, слова, двойные слова и квадрослова (учетверенные слова). Каждый из представленных типов данных может начинаться с любого адреса: это означает, что слово не обязано начинаться с четного адреса; двойное слово - с адреса, кратного 4 и т.д. Таким образом, достигается максимальная гибкость структур данных и эффективность использования памяти.
Данные со знаком
На рис. 4.1. приведены 4 формата данных со знаком с фиксированной точкой. Байт (биты 0÷6 – значение, бит 7 – знак), двойное слово (биты 0÷30 – значение, бит 31 – знак) и так далее.
Рис. 4.1. Данные со знаком
Данные без знака
На рис. 4.2. приведены 3 формата данных без знака с фиксированной точкой.
Диапазон представления целых чисел: от -2-64 до 264.
Рис. 4.2. Данные без знака